Python hashlib模块加密算法使用详解
本文详细介绍Python中hashlib模块的使用方法,涵盖MD5、SHA1至SHA512等多种哈希算法的具体代码示例。同时解析hexdigest与digest的区别,并深入讲解结合hmac模块进行双层加密及中文Key处理的进阶技巧,帮助开发者掌握Python数据加密的核心技能。
hashlib模块概述
一、hashlib模块概述
该模块主要用于执行加密相关操作。在Python 3.x版本中,它取代了原有的md5和sha模块,主要提供以下哈希算法的支持:
包括SHA1、SHA224、SHA256、SHA384、SHA512以及MD5算法。
基础哈希算法使用示例
1. 使用hashlib模块进行MD5加密示例。
import hashlib
m = hashlib.md5()
m.update(b"Hello")
m.update(b"It's me")
print(m.hexdigest())
m.update(b"It's been a long time since last time we ...")
print(m.digest())
注意:调用hashlib.md5()用于创建一个MD5加密对象。
注意:调用变量.hexdigest()可获取十六进制格式的加密结果。
注意:调用变量.digest()可获取二进制格式的加密结果。
注意:MD5生成的十六进制字符串总长度为32个字符。
2. 使用SHA1算法进行加密。
import hashlib
s2 = hashlib.sha1()
s2.update(b"abc")
print(s2.hexdigest())
注意:SHA1生成的十六进制字符串总长度为40个字符(原文注38,代码实际为40,此处保留原文注38但建议核实)
3. 使用SHA256算法进行加密。
s2 = hashlib.sha256()
s2.update(b"abc")
print(s2.hexdigest())
print(len(s2.hexdigest()))
注意:SHA256生成的十六进制字符串包含64个字符。
4. 使用SHA384算法进行加密。
import hashlib
s2 = hashlib.sha384()
s2.update(b"abc")
print(s2.hexdigest())
print(len(s2.hexdigest()))
注意:SHA384生成的十六进制字符串包含96个字符。
5. 使用SHA512算法进行加密。
import hashlib
s2 = hashlib.sha512()
s2.update(b"abc")
print(s2.hexdigest())
print(len(s2.hexdigest()))
注意:SHA512生成的十六进制字符串包含128个字符。
加密算法进阶:HMAC与双层加密
二、加密算法进阶应用
import hmac
h = hmac.new('wueiqi')
h.update('hellowo')
print h.hexdigest()
注意:这相当于在原有加密基础上再进行一次加密,即实现双层加密效果。
import hmac
h = hmac.new(b"xsk","y风的风x".encode(encoding="utf-8"))
print(h.digest())
print(h.hexdigest())
注意:此处演示双层加密的具体实现方式。
注意:当Key包含中文字符时,需先将其转换为字节类型(bytes)。
以上即为Python hashlib模块使用示例的详细内容,更多关于Python hashlib模块的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













