hmac库:Python密码消息签名

Posted 一天一篇Python库

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hmac库:Python密码消息签名相关的知识,希望对你有一定的参考价值。

前言

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))

运行之后,效果如下:
二进制摘要

以上是关于hmac库:Python密码消息签名的主要内容,如果未能解决你的问题,请参考以下文章

HMAC-SHA1签名认证算法

Python JWT 库 PyJWT 使用 HS256 签名时遇到问题 - 使用 SHA-256 哈希算法的 HMAC

python实现HMAC算法与应用

如何在matlab中使用base64输出重现相同的python hmac

R Binance API HMAC SHA256 签名消息

使用 HMAC 散列密码和签名有啥安全优势吗?