076 hashlib模块和hmac模块

一、hashlib模块

1.1 hash是什么

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

hash值的特点:

  1. 只要传入的内容一样,得到的hash值一样,可用于非明文密码传输时密码校验
  2. 不能由hash值返解成内容,即可以保证非明文密码的安全性
  3. 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的,可以用于对文本的哈希处理

hash算法其实可以看成如下图所示的一座工厂,工厂接收你送来的原材料,经过加工返回的产品就是hash值

hashlib模块

1.2 hashlib模块的用法

import hashlib

m = hashlib.md5()  # 固定的写法,使用md5算法
m.update(b'123456')	# 必须进行编码,bytes类型
# m.update(b'456')  # 可以叠加之前update的内容
print(m.hexdigest())

二、hmac模块

和hashlib功能一致,也是通过hash算法对密码进行加密。

不同的是hmac更安全,并且可以设置密钥,根据密钥来生成hash值

1.1 hmac模块的用法

import hmac

m = hmac.new(b'abc')  # 设置密钥
m.update(b'123456')     # 必须进行编码,字节类型
# m.update(b'456')
print(m.hexdigest())    # 生成hash值
posted @ 2019-08-16 22:41  正在学习的Barry  阅读(125)  评论(0编辑  收藏  举报
-->