首页 > hashlib模式和hmac模式

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 hashlibm=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 hmach1=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

更多相关:

  • 先,response返回有两种,一种是字节流outputstream,一种是字符流printwrite。 申明:这里为了方便起见,所有输出都统一用UTF-8编码。 先说字节流,要输出“中国",给输出流的必须是转换为utf-8的“中国”,还要告诉浏览器,用utf8来解析数据 //这句话的意思,是让浏览器用utf8来解析返回的数据re...

  • 一个接受telnet输入的服务器端小程序 #!/usr/local/bin/python3.5 #coding:utf-8 import sockethost = '' port = 51423s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(so...

  •