hashlib的使用

2019-10-30  本文已影响0人  有趣的恶魔QAQ

一、基本概念

1.什么是hash?

  hash是一种算法(不同的hash算法只是复杂度不一样)(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512MD5 算法),该算法接受传入的内容,经过运算得到一串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
上一篇 下一篇

猜你喜欢

热点阅读