hashlib模式和hmac模式

hashlib模式

什么叫hash?

一:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法),该算法接受传入的内容,经过运算得到一串hash值

特点:

1、只要传入的内容一样,得到的hash值必然一样==========》可以保证下载内容完整性,文件完整性校验

2、但是你拿到的值不能返回原来的内容=======》把密码做成hash值,不要用明文传输

3、只要使用的hash算法不变,无论校验的内容一样,得到的hash值长度是固定

import hashlib()

m=hashlib.md5()

m.updata('hello'.encode('utf-8'))

m.updata('world'.encode('utf-8'))

m.updata('egon'.encode('utf-8'))

print(m.hexdigest())
import hashlib

m=hashlib.md5()
m.updata('hello'.encode('utf-8'))
m.updata('world'.encode('utf-8'))
m.updata('egon'.encode('utf-8'))
print('m.hexdigest()')

上下都一样打印出来都一样符合特点一

二;密码加盐(本质上就是把一些东西掺合在密码当中让密码难以被他人截取识别啊)

import hashlib
pwd=‘alex3712’
m.hashlib.md5()
m.updata('Ryansuperwa'.encode('utf-8'))
m.updata(pwd.encode('utf-8'))
m.updata('aijie'.encode('utf-8'))
print(m.hexdigest())

hmac模式:

python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 进行进一步的处理然后再加密:

import hmac

h1=hmac.new(b'egon')
h1.update(b'hello')
h1.update(b'world')
print(h1.hexdigest())

h2=hmac.new(b'egon')
h2.update(b'helloworld')
print(h2.hexdigest())

f1bf38d054691688f89dcd34ac3c27f2
f1bf38d054691688f89dcd34ac3c27f2
 
#要想保证hmac最终结果一致,必须保证:
#1:hmac.new括号内指定的初始key一样
#2:无论update多少次,校验的内容累加到一起是一样的内容
原文地址:https://www.cnblogs.com/wuchenyu/p/8779106.html