hashlib和hmac模块的使用方法

本文介绍了Python中用于数据加密的hashlib模块,详细展示了如何使用MD5、SHA系列算法进行单向加密。同时,通过实例演示了HMAC(Hash-based Message Authentication Code)加密,强调了其需要指定秘钥的特点。这些知识对于理解信息安全和数据保护至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两个模块都是用来进行数据加密
hashlib模块里主要支持两个算法md5和sha加密
加密方式:单向加密:只有加密的过程,不能解密md5/sha    对称加密   非对称加密rsa
x=hashlib.md5('abc'.encode('utf-8'))#使用md5方法传入要加密的参数,注意要加密的参数要转换为二进制'abc'.encode('utf-8')为转换步骤
print(x.hexdigest())#加密过后要查看字符串结果要使用hexdigest方法,否则x只是个对象


h1=hashlib.sha1('123'.encode('utf-8'))#转换为16进制 一个字符占4位默认长度为160bit
print(h1.hexdigest())

h2=hashlib.sha224('123'.encode('utf-8'))#转换为16进制 一个字符占4位所以长度为224bit
print(h2.hexdigest())

h3=hashlib.sha256('123'.encode('utf-8'))#转换为16进制 一个字符占4位所以长度为256bit
print(h3.hexdigest())

h4=hashlib.sha384('123'.encode('utf-8'))#转换为16进制 一个字符占4位所以长度为384bit
print(h4.hexdigest())

h5=hashlib.sha512('123'.encode('utf-8'))#转换为16进制 一个字符占4位所以长度为512bit
print(h5.hexdigest())
hmac 加密可以指定秘钥
#在hmac.new(key, msg=None, digestmod='')需要传三个参数
#key: 就是秘钥,并且必须是二进制类型
#msg:需要加密的消息,并且必须是二进制类型
#digestmod: 摘要算法,可以是一个hashlib模块中的哈希算法类,不传的情况下这里默认为空但是这里会报错,例如使用使用hashlib.sha1加密方式作为参数传递
#注:和hashlib加密方式一样的地方是需要吧key和msg使用encode()转换为二进制格式
h6=hmac.new('123456'.encode(),'abcdefg'.encode(),digestmod=hashlib.sha1)
print(h6.hexdigest())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值