出于好奇,真的...例如,在python中,
hashlib.sha1("key" + "data").hexdigest() != hmac.new("key", "data", hashlib.sha1)
这两个动作之间是否存在一些逻辑上的区别?
答案 0 :(得分:3)
hashlib.sha1简单地为您提供了作为参数提供的内容“keydata”的sha1哈希值(请注意,您只是连接两个字符串)。 hmac调用为您提供字符串“data”的键控哈希值,使用字符串“key”作为键,sha1作为哈希函数。这两个电话之间的根本区别在于HMAC只有在您知道密钥时才能被复制,因此您也可以了解谁生成了hmac。 SHA1只能用于检测内容是否未更改。
答案 1 :(得分:1)