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密码消息签名的主要内容,如果未能解决你的问题,请参考以下文章
Python JWT 库 PyJWT 使用 HS256 签名时遇到问题 - 使用 SHA-256 哈希算法的 HMAC
如何在matlab中使用base64输出重现相同的python hmac