python模块hmac,hmac哈希算法库

一、简介

hmac模块是Python标准库中的一个模块,用于计算消息的HMAC(基于哈希的消息认证码)。下面是hmac模块的介绍以及其优点和缺点:
优点:
1.安全性:HMAC结合了哈希函数和密钥,提供了更强的安全性,可以有效防止常规的哈希碰撞和长度扩展攻击。
2.灵活性:hmac模块支持多种哈希算法,例如MD5、SHA-1、SHA-256等,可以根据需要选择适合的算法。
3.简单易用:使用hmac模块计算HMAC值的步骤相对简单,只需提供密钥和消息即可。
缺点:
1.性能:由于HMAC需要进行额外的密钥扩展和哈希计算,相对于普通的哈希算法,它可能会稍微降低计算性能。但在大多数情况下,这种性能损失是可以接受的。
hmac模块提供了计算HMAC的功能,可以在数据传输和存储过程中用于验证数据的完整性和真实性。它是一种安全可靠的消息认证机制,使用简单,并支持多种哈希算法。但需要注意的是,选择合适的哈希算法和密钥长度对于确保安全性非常重要。

二、加解密方法
  1. hmac.new(key, msg=None, digestmod=‘’):该函数用于创建一个HMAC对象,用于计算消息的HMAC值,返回哈希对象
  • key:是用于计算HMAC的密钥,必须是字节串。
  • msg:是要计算HMAC的消息,也必须是字节串。如果不提供msg参数,则可以在之后使用update()方法添加消息。
  • digestmod:是一个可选参数,指定要使用的哈希算法,默认为’',表示使用MD5哈希算法。可以使用hashlib模块中的哈希算法名称,md5、sha1、sha224、sha256、sha384、sha512、blake2b、blake2s、sha3_224、sha3_256、sha3_384、sha3_512、hake_128、shake_256
import hmac

key = b'my_secret_key'
message = b'Hello, world!'

hmac_md5 = hmac.new(key, message, digestmod='md5')

hmac_md5.update('hello'.encode('utf-8'))
print('十六进制哈希值:',hmac_md5.hexdigest())
print('十六字节哈希值:',hmac_md5.digest())
print('哈希算法的分块大小:',hmac_md5.block_size)
print('哈希算法的哈希值大小:',hmac_md5.digest_size)
print('算法名称:',hmac_md5.name)
print('拷贝当前哈希对象:',hmac_md5.copy())
  1. hmac.digest(key, msg, digest):该函数用于计算给定密钥和消息的HMAC值,返回字串节对象
  • key:是用于计算HMAC的密钥,必须是字节串。
  • msg:是要计算HMAC的消息,也必须是字节串。
  • digest:是一个哈希算法对象,可以使用hashlib模块中的加密函数,例如:hashlib.md5
import hmac
import hashlib

key = b'my_secret_key'
message = b'Hello, world!'

hmac_md5 = hmac.digest(key, message, hashlib.md5)

print('十六进制哈希值:',hmac_md5.hex())
  1. hmac.compare_digest(a, b):该函数用于比较两个字节串的内容是否相等
import hmac

a = b'abc'
b = b'abc'

result = hmac.compare_digest(a, b)

print(result)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值