【发布时间】:2013-07-11 11:19:10
【问题描述】:
我需要使用 HMAC-MD5 算法对一些帖子数据进行数字签名。
我有密钥和一个示例字符串(我知道十六进制符号应该是什么。
我的问题是,当我使用 hash_hmac php 函数时,它生成的密钥与应有的不同。
说明如下:
将 HMAC 密钥从十六进制转换为字节格式 - 不知道该怎么做
根据商家的 HMAC 使用 HMAC-MD5 程序对字符串进行签名 key - 这点没问题
将签名从字节转换为十六进制格式并将其关联为 带参数符号的值 - 也不知道在这里做什么
我已经尝试在步骤 1 中使用它)$key2 = pack("H*" , $key) 这适用于第 2 步) bin2hex ( $sign ),它不能按预期工作。
我发现唯一能生成正确符号的在线 HMAC-MD5 生成器在这里: http://membres.multimania.fr/brudav/hash.php选中“Hexa”。不过,我显然不知道这是怎么解决的。
谁能给我一些建议?
【问题讨论】:
-
hash_hmac不生成密钥。它对输入数据进行哈希处理,默认情况下将输出作为十六进制字符串返回。使用raw_output参数获取二进制输出。 -- 显示您的代码以及结果与预期输出的不同之处。