【发布时间】:2010-10-11 10:01:14
【问题描述】:
我正在尝试使用 sha-512 计算 hmac。
Perl 代码:
use Digest::SHA qw(hmac_sha512_hex);
$key = "\x0b"x20;
$data = "Hi There";
$hash = hmac_sha512_hex($data, $key);
print "$hash\n";
并给出正确的散列
87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cde
daa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854
Python 版本:
import hashlib, hmac
print hmac.new("\x0b"*20, "Hi There", hashlib.sha512).hexdigest()
这给出了不正确的散列
9656975ee5de55e75f2976ecce9a04501060b9dc22a6eda2eaef638966280182
477fe09f080b2bf564649cad42af8607a2bd8d02979df3a980f15e2326a0a22a
知道为什么 Python 版本给了我错误的哈希值吗?
编辑:
版本是
Python 2.5.1(r251:54863,2009 年 1 月 13 日,10:26:13)
[GCC 4.0.1 (Apple Inc. build 5465)] 在 darwin 上
【问题讨论】:
-
请提供版本信息
-
那是……一个非常奇怪的版本字符串。您的 2.5.1 比我的(过时的)2.5.2 更新 年?这确实不寻常。也许尝试更新到 2.5.4(不应该破坏任何包)?