2012-10-22 36 views
4

我能够用下面的代码顺利拿到HMAC SHA1签名密钥:如何在PHP中将hmacsha1键设置为十六进制?

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

这将产生:

5e50e6458b0cdc7ee534967d113a9deffe6740d0 

不过,我有期待这个代替工作地点:

46abe81345b1da2f1a330bba3d6254e110cd9ad8 

我试过online tool看来,两者的区别在于,我正在使用的人之一ar期待HEX类型签名密钥。

有什么我需要添加到我的PHP为了输出HEX类型?

+0

这两个系统有什么区别?我建议你为你的问题添加两个PHP版本。 – hakre

回答

3

你需要传递到hash_hmac前十六进制字符串二进制数据转换:

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

输出46abe81345b1da2f1a330bba3d6254e110cd9ad8预期。

+0

啊!完美的作品。谢谢! – tonyrocks

相关问题