zl程序教程

您现在的位置是:首页 >  后端

当前栏目

hashlib库:Python的加密算法实践

Python 实践 加密算法 hashlib
2023-09-14 09:07:03 时间

hashlib库定义了一个API来访问不同的密码散列算法。其底层由OpenSSL提供,所以OpenSSL库提供的所有算法都可以用,包括:

  • MD5
  • SHA1
  • SHA224
  • SHA256
  • SHA384
  • SHA512

当然,这上面列举的只是其支持的一部分。真正全部支持的种类读者可以用过下面代码打印出来,示例如下:

import hashlib

print(hashlib.algorithms_guaranteed)
print(hashlib.algorithms_available)

运行之后,效果如下:
在这里插入图片描述
algorithms_available:获取可以运行在python解释器中的hash算法名称的集合。

algorithms_guaranteed:获取保证在所有平台上此模块支持的hash算法名称的集合。

MD5

要为一个数据块计算MD5散列或摘要,首先要创建散列对象,然后增加数据,最后调用digest()或hexdigest()。示例如下:

import hashlib

str = 'mm123456_1102121'
h = hashlib.md5()
h.update(str.encode('UTF-8'))
print(h.digest())
print(h.hexdigest())

运行之后,效果如下:
在这里插入图片描述
digest:返回二进制数据字符串值

hexdigest:返回十六进制数据字符串值

SHA1

SHA1的使用方式与MD5一样,示例如下:

import hashlib

str = 'mm123456_1102121'
h = hashlib.sha1()
h.update(str.encode('UTF-8'))
print(h.digest())
print(h.hexdigest())

运行之后,效果如下:
在这里插入图片描述
其它加密算法使用方式与MD5与SHA1一摸一样,这里就不在赘述。