我需要使用 HMAC-MD5 算法对一些发布数据进行数字签名。
我有 key 和一个示例字符串(我知道它的十六进制符号应该是什么。
我的问题是,当我使用 hash_hmac php 函数时,它生成的 key 与应有的不同。
说明是:
将 HMAC key 从十六进制转换为字节格式 - 不确定如何执行
根据商户的HMAC,使用HMAC-MD5程序对字符串进行签名 关键 - 这一点很好
将签名从字节转换为十六进制格式并将其关联为 带参数符号的值 - 也不知道在这里做什么
我尝试在步骤 1) $key2 = pack("H*", $key) 中使用它 这适用于步骤 2) bin2hex ( $sign ),但它无法按预期工作。
我发现唯一能产生正确符号的在线 HMAC-MD5 生成器在这里: http://membres.multimania.fr/brudav/hash.php当选择“六角形”时。我显然不知道这是如何实现的。
有人可以给我任何建议吗?
最佳答案
$hmac = hash_hmac('md5', $data, hex2bin($key));
应该给出与在线计算器相同的答案。
关于php - HMAC-MD5 签名 - 将 key 从十六进制转换为字节格式 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17622969/