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に変換したいのですがどうすればよいでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/02/06 18:04:41
  • 終了:2008/02/06 23:48:20

回答(2件)

id:GoldenDawn No.1

GoldenDawn回答回数426ベストアンサー獲得回数812008/02/06 18:26:28

ポイント25pt
sha1('sample'.'6c4eb5e906ed115539ebae65c8f3e0231eceb275'.time()) 

これではどうですか。

http://q.hatena.ne.jp

id:hiro-rock

GoldenDawnさん、すいません。

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

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

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

2008/02/06 18:36:39
id:bonlife No.2

回答回数421ベストアンサー獲得回数752008/02/06 19:09:40

ポイント45pt

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の出力結果を利用するので、結果となる文字列は異なります。

id:hiro-rock

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

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

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

お騒がせいたしました。

2008/02/06 23:26:10

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません