python之 hashlib模块
python之 hashlib模块
hash值的特点
-
只要传入的内容一样,得到的hash值必然一样=====>要用明文传输密码文件完整性校验
-
不能由hash值返解成内容=======》把密码做成hash值,不应该在网络传输明文密码
-
只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的
#1、 密文传输与验证
#把一段很长的数据update多次,与一次update这段长数据,得到的结果一样,但是update多次为校验大文件提供了可能。以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。
import hashlib
m=hashlib.md5() #m=hashlib.sha256()
m.update('hello'.encode('utf-8'))
m.update('word'.encode('utf-8'))
res=m.hexdigest() #hello world
print(res)
m1=hashlib.md5()
m1.update('hello'.encode('utf-8'))
m1.update('word'.encode('utf-8'))
res=m1.hexdigest()
print(res)
#校验文件两种方式
#1.读整个文件
m.update(文件所有的内容)
res=m.hexdigest()
#2.逐行读入【推荐,不会撑爆内存】
m1.update(文件一行)
m1.update(文件一行)
res=m1.hexdigest()
>>> import hashlib
>>> m=hashlib.md5()
>>> m.update('hello'.encode('utf-8'))
>>> m.update('word'.encode('utf-8'))
>>> res=m.hexdigest()
>>> print(res)
59284aa85709ddaf3bd246030060f6a2
>>> m1=hashlib.md5()
>>> m1.update('hello'.encode('utf-8'))
>>> m1.update('word'.encode('utf-8'))
>>> res=m1.hexdigest()
>>> print(res)
59284aa85709ddaf3bd246030060f6a2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-06-15 vsftpd启动报错:vsftpd:500 OOPS: bad bool value in config file for: anonymous_enable
2020-06-15 管理创建分区命令