我正在尝试使用sha-512来计算hmac。为什么我在Python中获得错误的hmac结果,但不是Perl?
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分十三秒)
[GCC 4.0.1(苹果公司建立5465)对达尔文
请提供版本信息 – 2009-03-05 00:33:33
这是一个非常奇怪的版本字符串。你的2.5.1比*(过时的)2.5.2更新*年?这确实是不寻常的。也许尝试更新到2.5.4(这不应该打破任何包)? – kquinn 2009-03-05 00:39:51