5

只是出于好奇,真的......例如,在python中,

hashlib.sha1("key" + "data").hexdigest() != hmac.new("key", "data", hashlib.sha1)

这两个动作之间是否存在一些逻辑上的区别?

4

2 回答 2

4

hashlib.sha1 为您提供作为参数提供的内容“keydata”的简单 sha1 哈希(请注意,您只是连接两个字符串)。hmac 调用为您提供字符串“data”的键控散列,使用字符串“key”作为键,sha1 作为散列函数。这两个调用之间的根本区别在于,只有在您知道密钥的情况下才能复制 HMAC,因此您也可以知道是谁生成了 hmac。SHA1 只能用于检测内容没有改变。

于 2012-07-17T16:44:24.360 回答
1

我在手册中找到了答案。

https://en.wikipedia.org/wiki/Hmac#Design_principles

于 2012-07-18T13:45:52.040 回答