错误的HMAC使用PHP 5.0.4

时间:2016-09-01 15:16:26

标签: php hash sha256 hmac phpseclib

我正在尝试使用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编码效果很好。

提前致谢。

1 个答案:

答案 0 :(得分:1)

这是一个与32位Linux PHP-5.3之前的float to int转换相关的问题。 phpseclib的开发人员修复了1.0.4版本的问题。 2.0.4