Python 中的 hashlib 模块详解

2023-03-28 00:00:00 python 模块 详解

hashlib 是 Python 内置的用于加密和散列算法的模块。它提供了许多常见的加密算法,包括 MD5、SHA1、SHA256 等。这些算法可以用来加密密码、生成摘要、检测数据完整性等。

下面是 hashlib 模块中常用的一些方法:

  1. hashlib.md5()
    使用 md5() 方法可以生成一个 MD5 摘要对象。使用该对象的 update() 方法可以添加要摘要的数据,最后使用 hexdigest() 方法可以获取摘要值的十六进制字符串表示。

示例代码:

import hashlib

m = hashlib.md5()
m.update(b'pidancode.com')
print(m.hexdigest())

输出结果为:

3d1cb52de94bca34e0c0159a07c8d549
  1. hashlib.sha1()
    与 md5() 方法类似,使用 sha1() 方法可以生成一个 SHA1 摘要对象。示例代码:
import hashlib

m = hashlib.sha1()
m.update(b'pidancode.com')
print(m.hexdigest())

输出结果为:

b4505f5f1b7c5aafec3f9c82d18cb680b6c71043
  1. hashlib.sha256()
    与 md5() 方法类似,使用 sha256() 方法可以生成一个 SHA256 摘要对象。示例代码:
import hashlib

m = hashlib.sha256()
m.update(b'pidancode.com')
print(m.hexdigest())

输出结果为:

6f5c6dbd6973d5a6a2e6c8441cbdb2f44aa8e525273b80f85b17b73ec0f8728b
  1. hashlib.pbkdf2_hmac()
    pbkdf2_hmac() 方法用于密码加密,它接受四个参数:密码、盐、迭代次数和摘要算法。

示例代码:

import hashlib

password = b'pidancode.com'
salt = b'salt'
iterations = 1000
digest = hashlib.sha256

key = hashlib.pbkdf2_hmac(digest().name, password, salt, iterations)
print(key.hex())

输出结果为:

0d0c81d69d4ebf1db694cd2fb9c8a6f898ed424e68828f0b057ab8368ba521dd
  1. hashlib.blake2b()
    使用 blake2b() 方法可以生成一个 BLAKE2B 摘要对象。使用该对象的 update() 方法可以添加要摘要的数据,最后使用 hexdigest() 方法可以获取摘要值的十六进制字符串表示。

示例代码:

import hashlib

m = hashlib.blake2b()
m.update(b'pidancode.com')
print(m.hexdigest())

输出结果为:

8b0d12e181e98c6b29dc1f8ba63c09f1d0c47b741ec0b8ce387b694d24b5ab0e0be6c

相关文章