4-07python语法基础-内置模块-hashlib模块
2023-09-14 09:00:31 时间
hashlib模块
import hashlib
# 不加盐
md5 = hashlib.md5() # 创建一个md5算法的对象
md5.update('123456'.encode('utf-8'))
print(md5.hexdigest()) # 这个值永远不会变,容易被人暴力破解,要加盐
# 固定加盐
md5 = hashlib.md5('SOS'.encode('utf-8')) # 固定的盐还是可以破解的,
md5.update('123456'.encode('utf-8'))
print(md5.hexdigest())
# 动态加盐
user = 'sos'
print(user[1::-1])
md5 = hashlib.md5(user[1::-1].encode('utf-8'))
md5.update('123456'.encode('utf-8'))
print(md5.hexdigest())
# sha算法,和md5的用法一样,不过常用的还是md5,sha算法会慢一点
sha1 = hashlib.sha1('SOS'.encode('utf-8'))
sha1.update('123456'.encode('utf-8'))
print(sha1.hexdigest())
# 文件一致性校验
def md5file(file):
md5=hashlib.md5() # 做文件一致性校验不需要加盐
with open(file,'rb') as f:
# text = f.read()
# md5.update(text)
# 对于大文件,不能一次性读取,
while True:
text = f.read(1024) # 每次读取1024字节
if text:
md5.update(text)
else:
break
return md5.hexdigest() # 一次性读取和循环读取的结果是一样的
print('*' * 50)
print(md5file('test.txt'))
print(md5file('text2.txt'))
相关文章
- Python基础24-MySQL模块pymysql
- python:类基础「建议收藏」
- 谷粒学院day03——讲师管理模块前端基础(上)
- 运维Python自动化之路:基础信息模块之psutil模块
- 【Pytorch基础】线性模型
- 算法0基础刷题——日期计算
- 软件测试|Python基础之模块导入和使用
- 计算机网络基础--Pc1连接Pc2
- Python基础语法-内置函数和模块-常用内置函数(二)
- 深度学习基础入门篇[五]:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测
- postgresql 数据库基础 之 存储函数调用变量的几种不通方法
- 面试必备:掌握MySQL知识点的基础(mysql面试)
- 运维学python之爬虫基础篇(三)urllib模块高级用法
- 运维学python之爬虫基础篇(二)urllib模块使用
- Linux命令模式入门:25个基础命令大全(linux进入命令模式)
- server以xcb架构为基础的linux服务器搭建(xcblinux)
- javascript入门基础之私有变量
- ASP.NETMVC小结之基础篇(一)