Python hashlib模块加密算法使用详解

木白
木白
发布时间:2026-10-14 | 3人浏览过
原创

本文详细介绍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模块的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表