目录
一、简介
hashlib
是 Python 标准库中的一个模块,用于提供多种安全哈希和消息摘要算法。它支持多种哈希算法,如 MD5、SHA-1、SHA-256 等。哈希函数通常用于数据完整性验证、密码存储、数字签名等场景。
二、用法
步骤一、导入hashlib库
python
import hashlib
步骤二、创建哈希对象
以md5加密方法为例子
python
# 创建对象
md5_hash = hashlib.md5()
步骤三、往哈希对象中传值
传入哈希对象中的值必须是以字节的形式,所以在传值时要指定编码形式,如'utf-8'
1、可以在创建对象的时候传值
python
md5_hash = hashlib.md5('456'.encode('utf-8'))
2、使用updata传值
python
md5_hash.update('123'.encode('utf-8'))
步骤四、获取经过哈希对象加密后的值
使用hexdigest()方法获取加密后的值
python
outputs = md5_hash.hexdigest()
注:获取的值是前面传入的值拼接后的总和,且只要传入的值不变输出的值也不会变,演示如下:
python
import hashlib
# 逐个传入
md5_hash = hashlib.md5()
md5_hash.update('123'.encode('utf-8'))
md5_hash.update('456'.encode('utf-8'))
output1 = md5_hash.hexdigest()
print(f'output1--{output1}')
# 整体传入
md5_hash1 = hashlib.md5()
md5_hash1.update('123456'.encode('utf-8'))
output2 = md5_hash1.hexdigest()
print(f'output2--{output2}')
三、注意事项
1、编码问题
在调用
update()
方法时,确保数据是以字节形式传递的。通常可以使用encode('utf-8')
将字符串转换为字节。
2、安全性
MD5 和 SHA-1 已经被证明不够安全,不建议用于密码存储等需要高安全性的场景。推荐使用 SHA-256 或更安全的算法。
3、多次传值
可以多次调用
update()
方法来添加数据,哈希对象会自动处理数据的拼接。
四、总结
hashlib
模块提供了多种哈希算法,可以用于数据完整性验证、密码存储等场景。通过创建哈希对象、更新数据和获取哈希值,你可以轻松地在 Python 中使用这些哈希算法。