python常用模块-hashlib模块

hashlib的基本概念

hash是一种摘要算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法),该算法接受传入的内容,经过运算得到一串hash值,且此hash值无法反向运算成传入的值。

基本特点

  • 对同样的内容进行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()) 

你可能感兴趣的:(python常用模块,python,模块,hashlib)