《Python基础》之数据加密模块hashlib的用法

目录

一、简介

二、用法

步骤一、导入hashlib库

步骤二、创建哈希对象

步骤三、往哈希对象中传值

1、可以在创建对象的时候传值

2、使用updata传值

步骤四、获取经过哈希对象加密后的值

三、注意事项

1、编码问题

2、安全性

3、多次传值

四、总结


一、简介

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 中使用这些哈希算法。

相关推荐
是娇娇公主~6 分钟前
C++ 中 std::deque 的原理?它内部是如何实现的?
开发语言·c++·stl
2401_8747325315 分钟前
为你的Python脚本添加图形界面(GUI)
jvm·数据库·python
SuperEugene25 分钟前
Axios 接口请求规范实战:请求参数 / 响应处理 / 异常兜底,避坑中后台 API 调用混乱|API 与异步请求规范篇
开发语言·前端·javascript·vue.js·前端框架·axios
FreakStudio34 分钟前
0 元学嵌入式 GUI!保姆级 LVGL+MicroPython 教程开更,从理论到实战全搞定
python·单片机·嵌入式·面向对象·电子diy
xuxie991 小时前
N11 ARM-irq
java·开发语言
wefly20172 小时前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
luanma1509802 小时前
PHP vs C++:编程语言终极对决
开发语言·c++·php
寂静or沉默3 小时前
2026最新Java岗位从P5-P7的成长面试进阶资源分享!
java·开发语言·面试
剑穗挂着新流苏3123 小时前
117_PyTorch 实战:利用训练好的模型进行单张图片验证
人工智能·python·深度学习
Lethehong3 小时前
Python Selenium全栈指南:从自动化入门到企业级实战
python·selenium·测试工具·自动化