Python 标准库

hashlib

2024-03-30

hashlib 模块为 [[Python]] 提供了一些常用的加密哈希算法的实现,比如 MD5、SHA-1、SHA-256 等。

hashlib

函数

带命名的函数,比 [[#.new()]] 方法更快。

.md5()

生成 MD5 哈希对象(不安全,不推荐使用)。

import hashlib
text = "hello world"
# 方式一
md5 = hashlib.md5(text.encode()).hexdigest()
# 方式二
md5 = hashlib.md5()
md5.update(text.encode('utf-8'))
md5.hexdigest()

.sha256()

生成 SHA-256 哈希对象。

import hashlib
text = "hello world"
sha256 = hashlib.sha256(text.encode("utf-8")).hexdigest()

.sha1()

.sha224()

.sha384()

.sha512()

.sha3_256()

.sha3_384()

.sha3_512()

.new()

生成指定哈希算法的哈希对象。

import hashlib
# 写法三: new 方法, 可以自定义指定加密方式
m = hashlib.new("sha256")
m.update(b"hello world")
m.hexdigest() # 返回: '9f083d4e474d93914f366d8f97d69f77'

方法

.update()

更新哈希对象。

import hashlib
h = hashlib.new("sha256")
h.update(b"hello world")

.hexdigest()

返回十六进制字符串。

import hashlib
h = hashlib.sha256(b"hello world")
h.hexdigest()
# 返回: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

.digest()

返回二进制字符串。

import hashlib
h = hashlib.sha256(b"hello world")
h.digest()
# 返回: b"\xb9M'\xb9\x93M>\x08\xa5.R\xd7\xda}\xab\xfa\xc4\x84\xef\xe3zS\x80\xee\x90\x88\xf7\xac\xe2\xef\xcd\xe9"

属性

  • .name: 哈希算法名称
  • .digest_size: 哈希值的字节大小

参考