我正在尝试使用PHP 5.0.4启用HMAC Hashing(SHA256)并使用phpseclib(据我所知,phpseclib依赖于本机PHP规范),我使用它的示例代码非常简单:< / p>
include('Crypt/Hash.php');
$hash = new Crypt_Hash('sha256');
$hash->setKey('abcdefg');
echo bin2hex($hash->hash('something'));
它使用此字符串生成HMAC:
e678e33c727ddf7172d3521cf9c0c2a15b66e03eb96d77795fa4adb338dc24a9
但显然,这个字符串是无效的,因为对此在线工具做同样的事情:
http://www.freeformatter.com/hmac-generator.html
http://beautifytools.com/hmac-generator.php
http://www.jetcityorange.com/hmac/
我收到这个字符串:
9a43ff294bdfed399e2d5a3d739a4efb7eccc23269b80b3f0d855937d35ae06f
我做错了什么?
注意:SHA1编码效果很好。
提前致谢。
答案 0 :(得分:1)
这是一个与32位Linux PHP-5.3之前的float to int转换相关的问题。 phpseclib的开发人员修复了1.0.4版本的问题。 2.0.4