python中常用模块hashlib用法

2019-06-18  本文已影响0人  是新来的啊强呀

hashlib模块概念

什么是哈希算法呢?

哈希算法又称摘要算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串,通常用16进制的字符串表示。只要传入的内容一样,得到的hash值必然一样。哈希算法是一个单向函数,无法反推。

Python的hashlib模块提供了常见的哈希算法,如 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法等等。

如何使用?

# 法一
import hashlib                                # 导入hash库
# 1.造出hash工厂
m=hashlib.md5()                               # 括号内也可以传值,类型也要求是bytes类型
# 2.运送原材料
m.update('你好呀!'.encode('utf-8'))
# 3.产出hash值
print(m.hexdigest())                         
>>9e49eb8e75b9a87424e388b862ea5f83
# 法二
import hashlib                                # 导入hash库
m=hashlib.md5('你'.encode('utf-8'))           # 括号内也可以传值,类型也要求是bytes类型
m.update('好呀!'.encode('utf-8'))            # 把要转码的内容拆开,不影响结果
print(m.hexdigest())   
>>9e49eb8e75b9a87424e388b862ea5f83

应用实例
文件一致性校验,可以拷贝一个文件放在两个不同的盘中,然后通过判断两个文件的hash值是否相等,判断两个文件是否是同一个文件。

import hashlib
m = hashlib.md5()
with open(r'G:/logging模块配图.png','rb') as f:
    for line in f:
        m.update(line)
print(m.hexdigest())          
*********************************************************
import hashlib
m = hashlib.md5()
with open(r'H:/logging模块配图.png','rb') as f:
    for line in f:
        m.update(line)
print(m.hexdigest()) 
上一篇 下一篇

猜你喜欢

热点阅读