hmac.new这个方法就是用一个秘钥,给一个签名消息进行加密的。
hmac.new()
方法用于创建一个HMAC对象
,
该对象可用于计算一个消息的HMAC值。
HMAC(Hash-based Message Authentication Code,基于哈希的消息认证码)
是一种用于验证消息完整性和真实性
的技术,
它基于哈希函数
和密钥
生成一个固定长度的认证码
。
hmac.new()
方法的语法如下:
hmac.new(key, msg=None, digestmod=None)
其中,
参数key
是一个字节串,表示用于生成HMAC的密钥;
参数msg
是一个字节串,表示要计算HMAC的消息,如果不提供该参数,则默认为None
;
参数digestmod
是一个哈希算法对象,表示要用于计算HMAC的哈希算法,默认为hashlib.md5
。
一个密钥、一个签名消息、一个算法
hmac.new()
方法返回一个HMAC
对象,该对象具有以下方法:
-
update(msg)
:将字节串msg
添加到要计算的消息中。 -
digest()
:返回计算出的HMAC值的字节串。 -
hexdigest()
:返回计算出的HMAC值的十六进制字符串。
下面是一个示例代码,演示如何使用hmac.new()
方法计算消息的HMAC值:
import hmac
import hashlib
key = b'secret-key'
msg = b'message-to-be-authenticated'
h = hmac.new(key, msg, digestmod=hashlib.sha256)
digest = h.digest()
在上面的代码中,
首先定义了一个密钥key
和一个消息msg
,
然后使用hmac.new()
方法创建了一个HMAC对象h
,
并使用hashlib.sha256
作为哈希算法。
接着,使用update()
方法将要计算的消息添加到h
对象中,
最后使用digest()
方法计算出HMAC值,
并将其保存在变量digest
中。