人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PythonのコードをPHPに変換したいです!

あるAPIを使用するための認証で下記のPythonコードのように、sha1ダイジェストを生成し、それを16進文字列に変換したものを使用しなくてはなりません。

■Python(APIサンプル)
sha1.new('sample'+'6c4eb5e906ed115539ebae65c8f3e0231eceb275'+str(int(time.time()))).hexdigest()

APIのサンプルでは上記のPythonコードで取得していましたが、下記のPHPで取得しようとしたところ期待値が取得できませんでした…

■PHP(取得不可)
sha1('sample'+'6c4eb5e906ed115539ebae65c8f3e0231eceb275'+time())

上記のpythonコードをPHPに変換したいのですがどうすればよいでしょうか?

●質問者: hirorock
●カテゴリ:インターネット ウェブ制作
✍キーワード:.new API PHP Python SHA1
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● GoldenDawn
●25ポイント
sha1('sample'.'6c4eb5e906ed115539ebae65c8f3e0231eceb275'.time()) 

これではどうですか。

http://q.hatena.ne.jp

◎質問者からの返答

GoldenDawnさん、すいません。

Pythonとゴチャゴチャになってしまい掲載したコードを間違えてしまいました。

sha1('sample'.'6c4eb5e906ed115539ebae65c8f3e0231eceb275'.time())

↑このコードで取得不可でした。。


2 ●
●45ポイント

id:GoldenDawnさんの回答で、Python同様40文字のハッシュ値が返されると思うのですが、「取得不可」とは何が取得不可なのでしょうか。

何かエラーは出ていますか。

以下のようなPHPスクリプトを実行します。

<?php
echo sha1('sample'.'6c4eb5e906ed115539ebae65c8f3e0231eceb275'.time());
?>

ブラウザで開くと以下のような文字列が出力されます。

cac4b5331fbcd53e56c86d7e40c30d51d0d93a40

Pythonの場合も同じです。

import sha
import time
print sha.new('sample'+'6c4eb5e906ed115539ebae65c8f3e0231eceb275'+str(int(time.time()))).hexdigest()

上記のスクリプトを実行すると以下のような出力が得られます。

f24318da13623004b1bee566165a105861f60166

timeの出力結果を利用するので、結果となる文字列は異なります。

◎質問者からの返答

お二方ともに回答いただきありがとうございました。

まことに申しあげにくいのですが、ただいまAPI提供者から連絡があり動作不具合はダイジェストキーの問題ではなかったようです。

提供側の処理でユーザーの環境によって何らかの制限があった為にレスポンスでエラーを返していたようです。

お騒がせいたしました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ