简介
Hmac算法:Keyed-Hashing for Message Authentication
。
它通过一个标准算法,在计算哈希的过程中,把key
混入计算过程中。
和我们自定义的加salt算法不同,Hmac
算法针对所有哈希算法都通用,无论是MD5
还是SHA-1
。采用Hmac替代我们自己的salt算法,可以使程序算法更标准化,也更安全。
Python自带的hmac
模块实现了标准的Hmac
算法。我们来看看如何使用hmac实现带key的哈希。
我们首先需要准备待计算的 原始消息 message
和 固定key
。
注意:
digest() 返回的是二进制数据
hexdigest() 返回的是十六进制数据
列举几种常用的情况:
第一种: digestmod 模式选择为 hashlib.md5
,返回的数据是长度32位
hmac.new(key.encode(), message.encode(), hashlib.md5).hexdigest()
第二种: digestmod 模式选择为 hashlib.sha1
,返回的 数据是长度40位