Python hashlib 加密方法(MD5、SHA1、SHA256、SHA52)

简介: Python hashlib 加密方法(MD5、SHA1、SHA256、SHA52)

Python hashlib 加密

Python 提供了 hashlib 模块来进行加密操作。在下面的文章中,我们将介绍 hashlib 模块的常用加密算法。

1. hashlib 简介

hashlib 模块是 Python 中用于加密的标准库。它包含了所有常见的哈希函数,例如 SHA1、SHA224、SHA256、SHA384、SHA512、MD5 等。这些哈希函数都是单向的,即只能对信息进行加密,而无法解密。

2. hashlib 使用方法

使用 hashlib 进行加密的方法非常简单,以下是一个使用示例:

import hashlib
# 创建一个 MD5 的加密对象
hash_object = hashlib.md5()
# 更新加密对象中的信息
hash_object.update(b'Hello World')
# 打印加密后的结果
print(hash_object.hexdigest())
# 输出结果: b10a8db164e0754105b7a99be72e3fe5

其中 b'Hello World' 表示将字符串 'Hello World' 转化为二进制数据,传入到加密对象中。

3. 常用的哈希函数

3.1 MD5

MD5 是一种常见的哈希函数,它可以将任意长度的信息转换为一个 128 位的哈希值。以下是一个使用 MD5 进行加密的示例:

import hashlib
# 创建一个 MD5 的加密对象
hash_object = hashlib.md5()
# 更新加密对象中的信息
hash_object.update(b'Hello World')
# 打印加密后的结果
print(hash_object.hexdigest())
# 输出结果:b10a8db164e0754105b7a99be72e3fe5

3.2 SHA1

SHA1 是一种安全性较高的哈希函数,它可以将任意长度的信息转换为一个 160 位的哈希值。以下是一个使用 SHA1 进行加密的示例:

import hashlib
# 创建一个 SHA1 的加密对象
hash_object = hashlib.sha1()
# 更新加密对象中的信息
hash_object.update(b'Hello World')
# 打印加密后的结果
print(hash_object.hexdigest())
# 输出结果:0a4d55a8d778e5022fab701977c5d840bbc486d0

3.3 SHA256

SHA256 是一种安全性更高的哈希函数,它可以将任意长度的信息转换为一个 256 位的哈希值。以下是一个使用 SHA256 进行加密的示例:

import hashlib
# 创建一个 SHA256 的加密对象
hash_object = hashlib.sha256()
# 更新加密对象中的信息
hash_object.update(b'Hello World')
# 打印加密后的结果
print(hash_object.hexdigest())
# 输出结果:b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

3.4 SHA512

SHA512 是一种安全性最高的哈希函数,它可以将任意长度的信息转换为一个 512 位的哈希值。以下是一个使用 SHA512 进行加密的示例:

import hashlib
# 创建一个 SHA512 的加密对象
hash_object = hashlib.sha512()
# 更新加密对象中的信息
hash_object.update(b'Hello World')
# 打印加密后的结果
print(hash_object.hexdigest())
# 输出结果:309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f
61c8c26b58b25c723f6185c07c6b7888304ddcf75a9d6c1e9a6c683b0b9d24

4. 总结

Python hashlib 模块提供了多种哈希函数,包括 MD5、SHA1、SHA256 和 SHA512 等。使用 hashlib 进行加密非常简单,在创建加密对象后,只需要传入需要加密的信息即可。经过哈希函数加密后的信息是不可逆的,保证了信息的安全性。

相关文章
|
1天前
|
SQL 关系型数据库 数据库连接
使用 Python 访问数据库的基本方法
【5月更文挑战第12天】在Python中操作数据库涉及安装数据库驱动(如mysql-connector-python, psycopg2, pymongo)、连接数据库、执行查询/更新、处理结果集及关闭连接。使用ORM(如SQLAlchemy)可简化操作。通过上下文管理器(with语句)能更好地管理资源和错误。注意根据实际需求处理事务、错误和安全性,例如使用SSL连接。
11 2
|
2天前
|
Python
【Python进阶(二)】——程序调试方法
【Python进阶(二)】——程序调试方法
|
4天前
|
存储 Linux Shell
python移除/删除非空文件夹/目录的最有效方法是什么?
python移除/删除非空文件夹/目录的最有效方法是什么?
8 0
|
6天前
|
Python
【Python 基础】Python中的实例方法、静态方法和类方法有什么区别?
【5月更文挑战第6天】【Python 基础】Python中的实例方法、静态方法和类方法有什么区别?
|
6天前
|
数据处理 Python
Python中每个字段增加多条数据的高效方法
Python中每个字段增加多条数据的高效方法
13 1
|
7天前
|
存储 数据挖掘 Python
Python技术分享:实现选择文件或目录路径的方法
Python技术分享:实现选择文件或目录路径的方法
17 2
|
7天前
|
数据处理 Python
Python中按指定数量分割列表字符串的方法
Python中按指定数量分割列表字符串的方法
9 1
|
11天前
|
Python
使用Python pandas的sort_values()方法可按一个或多个列对DataFrame排序
使用Python pandas的sort_values()方法可按一个或多个列对DataFrame排序。示例代码展示了如何按'Name'和'Age'列排序 DataFrame。先按'Name'排序,再按'Age'排序。sort_values()的by参数接受列名列表,ascending参数控制排序顺序(默认升序),inplace参数决定是否直接修改原DataFrame。
23 1
|
12天前
|
机器学习/深度学习 数据可视化 前端开发
【Python机器学习专栏】机器学习模型评估的实用方法
【4月更文挑战第30天】本文介绍了机器学习模型评估的关键方法,包括评估指标(如准确率、精确率、召回率、F1分数、MSE、RMSE、MAE及ROC曲线)和交叉验证技术(如K折交叉验证、留一交叉验证、自助法)。混淆矩阵提供了一种可视化分类模型性能的方式,而Python的scikit-learn库则方便实现这些评估。选择适合的指标和验证方法能有效优化模型性能。
|
13天前
|
机器学习/深度学习 算法 Python
【Python机器学习专栏】Python中的特征选择方法
【4月更文挑战第30天】本文介绍了机器学习中特征选择的重要性,包括提高模型性能、减少计算成本和增强可解释性。特征选择方法主要包括过滤法(如相关系数、卡方检验和互信息)、包装法(如递归特征消除和顺序特征选择)和嵌入法(如L1正则化和决策树)。在Python中,可利用`sklearn`库的`feature_selection`模块实现这些方法。通过有效的特征选择,能构建更优的模型并深入理解数据。