我现在为此苦苦挣扎了一段时间。我几乎扫描了谷歌上的所有内容,但我找不到正确的脚本,如何使用 128 位密钥创建 HMAC-SHA-256 算法。
它应该像这样简单:
$algo = 'sha256';
$file = 'file.txt';
$key = '1234567890abcdef1234567890abcdef';
echo hash_hmac_file ($algo, $file, $key );
file.txt
仅包含 8 个零(00000000)。
输出必须是FF365893D899291C3BF505FB3175E880,但我就是不明白怎么做?
我尝试了多种散列算法,但没有一个返回必要的值。我在这里做错了什么以及如何解决?
我也尝试了这个解决方案,但它仍然是错误的。
我需要这个来与银行联系,他们会提供这些测试数据。
最终答案:
echo 'FF365893D899291C3BF505FB3175E880<br />';
$algo = 'sha256'; $file = 'file.txt'; $key = '1234567890abcdef1234567890abcdef';
echo substr( strtoupper( hash_hmac_file( $algo, $file, pack("H*" , $key) ) ), 0, 32 );