当前位置: 首页 > 工具软件 > md_blockchain > 使用案例 >

从底层开始学写BlockChain__hashlib(Learn)

秦权
2023-12-01

基本概念

1、什么叫hash:hash是一种算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法),该算法接受传入的内容,经过运算得到一串hash值
2、hash值的特点是(hash值/产品有三大特性:):
2.1 只要传入的内容一样,得到的hash值必然一样=====>要用明文传输密码文件完整性校验
2.2 不能由hash值返解成内容=======》把密码做成hash值,不应该在网络传输明文密码(只能有内容返回hash值)
2.3 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的
基于2.1和2.3可以做文件下载一致性的校验
基于2.1和2.2可以对用户密码进行加密

产生hash值的三个阶段

import hashlib
# # ######## 256 ########
# # 1、造出hash工厂
hash = hashlib.sha256()     
# # 2、运送原材料#工厂传入的原材料都是bytes类型
hash.update('alvin'.encode('utf8'))                     
# # 3、产出hash值
print(hash.hexdigest())  # e79e68f070cdedcfe63eaf1a2e92c83b4cfb1b5c6bc452d214c1b7e77cdfd1c7

import hashlib
m=hashlib.md5()
m.update('你好呀!'.encode('utf-8'))
print(m.hexdigest())     #9e49eb8e75b9a87424e388b862ea5f83

检验文件一致性

# File 1
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

#File 2
import hashlib
m = hashlib.md5()
with open(r'H:/logging模块配图.png','rb') as f:
    for line in f:
        m.update(line)
print(m.hexdigest())

 

 类似资料: