hashlib的使用
2019-10-30 本文已影响0人
有趣的恶魔QAQ
一、基本概念
1.什么是hash?
hash是一种算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法),该算法接受传入的内容,经过运算得到一串hash值
2.hash值的三大特性:
① 只要传入的内容一样,得到的hash值必然一样
② 不能由hash值返解成内容
③ 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的
二、hash值产生的三步骤
1.md5
import hashlib
""" 造出hash工厂 """
md5 = hashlib.md5('hahaha'.encode('utf8'))
""" 往工厂运送原料 """
md5.update('ha'.encode('utf8')) """工厂传入的原料都为bytes类型"""
""" 产出hash值 """
print(md5.hexdigest()) # '4f0b36a34946153c358f8b243428a1eb'
以上也可以写成
import hashlib
md5 = hashlib.md5()
md5.update('hahahaha'.encode('utf8'))
print(md5.hexdigest()) # '4f0b36a34946153c358f8b243428a1eb'
结论:只要传入的内容一样,即便是拆分成两部分,产出的hash值也是一样的!
2.sha256
import hashlib
""" 造出hash工厂 """
hash = hashlib.sha256('hahaha'.encode('utf8'))
""" 往工厂运送原料 """
hash.update('ha'.encode('utf8'))
""" 产出hash值 """
print(hash.hexdigest()) # 6955b2914394a4d173715e0c6fd3922cb2e4397463351d60c40eac27882fac0c
也可以写成
import hashlib
''''''
hash = hashlib.sha256()
hash.update('hahahaha'.encode('utf8'))
print(hash.hexdigest()) # 6955b2914394a4d173715e0c6fd3922cb2e4397463351d60c40eac27882fac0c