hash是一种摘要算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法),该算法接受传入的内容,经过运算得到一串hash值,且此hash值无法反向运算成传入的值。
hashlib.md5(['str'.encode('编码方法')])
返回一个hash对象,可以加入初始对象来作为初始key,也可以不加,其中md5算法可以替换为现在常用的sha256
hash.update('str'.encode('utf8'))
可以将一个hash对象传入内容来进行hash,无法进行将结果赋予一个变量
hash.hexdigest()
生成hash值的函数
import hashlib
my_hash = hashlib.sha256("admin".encode("utf-8"))
my_hash.update("hello".encode("utf-8"))
my_hash = my_hash.hexdigest()
print(my_hash)
#98baa6003b9271087644eaa33b22e625d55ed767a9cdf45c1f5aff89f58b5087
检验两个文件是否为同一个文件
import hashlib
m = hashlib.md5()
with open(r'G:/logging模块配图.png','rb') as f:
for line in f:
m.update(line)
print(m.hexdigest()) #47a6b079cc33a4f312786b46e61e0305
m1 = hashlib.md5()
with open(r'H:/logging模块配图.png','rb') as f1:
for line in f1:
m1.update(line)
print(m1.hexdigest())