2019-03-19hashlib模块使用

一、基本概念

       Python的hashlib提供了常见的摘要算法,主要提供 如MD5,SHA1, SHA224, SHA256, SHA384, SHA512 算法等。
       摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。

二、如何产生hash值

import hashlib
md5 = hashlib.md5()
md5.update('this is md5'.encode('utf-8'))
print(md5.digest())  #digest:摘要(二进制)
print(md5.hexdigest()) #hex:十六进制
print(md5.)

输出:


注意:

  • md5可以替换为其他算法,不同算法得到的长度是不同的。
  • 无论传入多大文本,同一种算法得到的长度都是相同的。
  • md5 = hashlib.md5()括号内也可以传值
  • 文本过大可以使用md5.update()多次传值,其结果与一次传值是一样的。

三、hmac模块

       使用hmac模块时,若要使用update(),初始值必须一致,否则结果会不同。

import hmac
h1=hmac.new(b'tom')          #初始值必须保证一致,最终得到的结果就会不一样
h1.update(b'hello')
h1.update(b'world')
print(h1.hexdigest())

h2=hmac.new(b'tom')         #初始值必须保证一致,最终得到的结果就会不一样
h2.update(b'helloworld')
print(h2.hexdigest())

h3=hmac.new(b'tomhelloworld')   #初始值不一样,所以与上面两种的结果不一样
print(h3.hexdigest())

输出:

参考:
https://www.cnblogs.com/sui776265233/p/9224754.html
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868328251266d86585fc9514536a638f06b41908d44000

你可能感兴趣的:(2019-03-19hashlib模块使用)