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

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

本文详细介绍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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。