编程语言
首页 > 编程语言> > python之 hashlib模块

python之 hashlib模块

作者:互联网

python之 hashlib模块

hash是一类算法,该算法接受传入的内容,经过运算得到一串hash值

hash值的特点

特点II用于密码密文传输与验证;特点I、III用于文件完整性校验

#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

 

标签:hashlib,utf,python,res,update,m1,模块,hash
来源: https://www.cnblogs.com/weiweirui/p/16379200.html