1 什么是hash hash 是一种算法,该算法接受传入的内容,经过运算得到一串hash值 如果把hash算法比喻为一座工厂 那传给hash算法的内容就是原材料 生成的hash值就是生产出的产品 2 为何要用hash算法 hash值、产品的三大特性: 1,只要传入的内容一样,得到的hash值必然一样 2,只要我们使用的hash算法固定,无论传入的内容有多大 得到的hash值的长度的都是固定的 3,不可以用hash值逆推出原来的内容 基于1和2的可以在下载文件时做一致性效验 基于1和3可以对密码进行加密 3 ,如何用 ''' import hashlib # 1,造出hash工厂 m=hashlib.md5() # 2,运送原材料 m.update('你好啊美丽的'.encode('utf-8')) m.update('林磊'.encode('utf-8')) # 3,产出hash值 print(m.hexdigest())#0f1c24acdd78fd0551e9d4b443b691a0 # 1.造出hash工厂 n=hashlib.md5('你'.encode('utf-8')) # 2.运送原材料 n.update('好啊美丽的林磊'.encode('utf-8')) # 3,产出hash值 print(m.hexdigest())#跟上面的hash值是一样的0f1c24acdd78fd0551e9d4b443b691a0 # 应用一。文件的一致性校验 x=hashlib.sha512('你'.encode('utf-8')) x.update('好啊美丽的草原'.encode('utf-8')) print(x.hexdigest()) # 无论输入内容多长,产出的hash值的长度是一样的 m=hashlib.md5() with open(r'd.txt','rb')as f: for line in f: m.update(line) print(m.hexdigest())#只要输入的值一样,不管分几段update得到的hash的值都是一样的 # 应用二:对明文密码进行加密 password=input('>>>') y=hashlib.md5() y.update('天王'.encode('utf-8')) y.update(password.encode('utf-8')) print(y.hexdigest()) import hmac m=hmac.new('可以'.encode('utf-8')) m.update('hello'.encode('utf-8')) print(m.hexdigest()) #hmac和hash的不一样的地方在于new的小括号内要加入内容才可以正常运行
python的hash模块
最新推荐文章于 2024-05-23 10:38:34 发布