python模块详解 | hashlib

什么是hash?

hash是一种算法,该算法通过传值,经过运算得到一串hash值。hash函数有很多种类型,不同之处是其复杂度不同。

hash值的特点:

  1. 只要传入的内容一样,得到的hash值必然一样
  2. 不能由hash值反解成内容
  3. 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的

基于1、3点可以做文件下载一致性的检验;基于1、2点可以对用户密码进行加密。

python3版本里hashlib代替了md5和sha模块,主要提供SHA1、SHA224、SHA256、SHA512、MD5算法。

产生hash值的三个阶段

  1. 创建hash函数对象 - hash.md5()
  2. 传入原始数据 - hash.update()
  3. 生成hash值 - hash.hexdigest()
import hashlib

pd = 'password'.encode('utf-8') # 明文
hash = hashlib.md5() 
hash.update(pd)
# 或
hash = hashlib.md5(pd)
pd_md5 = hash.hexdigest() # 秘文

316 字