模块简介
hashlib 是 Python 中的一个标准库,提供了多种哈希算法的实现,包括常见的 MD5、SHA1、SHA256 等等。
哈希算法是一种将任意长度的数据映射到固定长度的数据的算法,通常用于密码学、数据校验、数字签名等领域。使用哈希算法可以将一个任意长度的输入数据(也称为消息)通过运算,得到一个固定长度的哈希值,也称为摘要。
实例
import hashlib
# 计算一个字符串的 MD5 哈希值
text = 'Hello World'
hash_object = hashlib.md5(text.encode())
print(hash_object.hexdigest())
# 计算一个文件的 SHA256 哈希值
with open('example.txt', 'rb') as f:
hash_object = hashlib.sha256(f.read())
print(hash_object.hexdigest())
方法与属性使用
md5()/sha1()...
简介:
常见hash算法构造器
语法格式:
无
示例:
import hashlib
h = hashlib.md5()
print(h)
生成结果:
new()
简介:
一个接受所希望的算法对应的字符串 name 作为第一个形参的通用构造器。 它还允许访问上面列出的哈希算法以及你的 OpenSSL 库可能提供的任何其他算法。
语法格式:
hashlib.new(name, [data, ]*, usedforsecurity=True)
示例:
import hashlib
h = hashlib.new('sha256')
h.update(b"Nobody inspects the spammish repetition")
h.hexdigest()
生成结果:
update()
简介:
更新哈希对象。
语法格式:
hash.update(data)
digest()
简介:
返回当前已传给 update()方法的数据摘要。
语法格式:
hash.digest()
hexdigest()
简介:
类似于 digest()但摘要会以两倍长度字符串对象的形式返回,其中仅包含十六进制数码。
语法格式:
hash.digest()
digest_size
简介:
以字节表示的结果哈希对象的大小。
语法格式:
hash.digest_size
block_size
简介:
以字节表示的哈希算法的内部块大小。
语法格式:
hash.block_size