hmac:Python密码消息签名

发布时间 2023-09-18 19:26:32作者: 阿瑞娜

前言

HMAC算法可以用于验证信息的完整性,这些信息可能在应用之间传递,或者存储在一个可能有安全威胁的地方。
其基本思路:生成实际数据的一个密码散列,并提供一个共享的秘密密钥。然后使用得到的散列检查所传输或存储的信息,以确定一个信任级别,而不传输秘密密钥。

消息签名

hmac库提供了一个new()函数来创建一个新对象来计算消息签名。示例如下:

import hashlib
import hmac

str = 'Li YuanJing'
hmac_maker = hmac.new(b'820-880-8820', bytes(str, 'utf-8'), hashlib.sha1).hexdigest()
print(hmac_maker)

运行之后,效果如下:

new第1个参数:秘密密钥

第2个参数:需要认证签名的数据

第3个参数:采用的散列算法

如控制台输出,计算出了一个HMAC签名。

二进制摘要

在许多的Web服务中,我们会经常使用base64编码版本的二进制摘要,所以我们需要将上面的签名数据返回为base64编码的二进制摘要,示例如下:

import hashlib
import hmac
import base64

str = 'Li YuanJing'
hmac_maker = hmac.new(b'820-880-8820', bytes(str, 'utf-8'), hashlib.sha1).digest()
print(base64.encodebytes(hmac_maker))

运行之后,效果如下: