4

次のコードを使用して、HMAC SHA1 署名キーを正常に取得できます。

echo hash_hmac('sha1','office:fred','AA381AC5E4298C23B3B3333333333333333333');

これにより、次の結果が得られます。

5e50e6458b0cdc7ee534967d113a9deffe6740d0

ただし、私が作業している場所は、代わりにこれを期待しています:

46abe81345b1da2f1a330bba3d6254e110cd9ad8

オンライン ツールを試してみましたが、この 2 つの違いは、私が一緒に作業している人々が HEX タイプの署名キーを期待していることです。

HEX 型を出力するために PHP に追加する必要があるものはありますか?

4

1 に答える 1

3

hash_hmac に渡す前に、16 進数の文字列をバイナリ データに変換する必要があります。

var_dump(hash_hmac("sha1", "office:fred", pack("H*", "AA381AC5E4298C23B3B3333333333333333333")));

期待どおりに出力46abe81345b1da2f1a330bba3d6254e110cd9ad8されます。

于 2012-10-22T13:28:26.353 に答える