如何在PHP中将hmacsha1键设置为十六进制?
问题描述:
我能够用下面的代码顺利拿到HMAC SHA1签名密钥:如何在PHP中将hmacsha1键设置为十六进制?
echo hash_hmac('sha1','office:fred','AA381AC5E4298C23B3B3333333333333333333');
这将产生:
5e50e6458b0cdc7ee534967d113a9deffe6740d0
不过,我有期待这个代替工作地点:
46abe81345b1da2f1a330bba3d6254e110cd9ad8
我试过online tool看来,两者的区别在于,我正在使用的人之一ar期待HEX类型签名密钥。
有什么我需要添加到我的PHP为了输出HEX类型?
答
你需要传递到hash_hmac前十六进制字符串二进制数据转换:
var_dump(hash_hmac("sha1", "office:fred", pack("H*", "AA381AC5E4298C23B3B3333333333333333333")));
输出46abe81345b1da2f1a330bba3d6254e110cd9ad8
预期。
+0
啊!完美的作品。谢谢! – tonyrocks
这两个系统有什么区别?我建议你为你的问题添加两个PHP版本。 – hakre