使用 Python (hashlib) 保护散列和消息摘要
联邦信息处理标准(FIPS)定义了安全哈希算法SHA1、SHA224、SHA256、SHA384和SHA512。RSA由Rivest、Shamir和Adleman的姓氏首字母组成的首字母缩写词,定义了MD5算法。较旧的算法称为消息摘要。现代术语是安全哈希。
hashlib模块用于实现以下算法。
MD5
沙1
sha224
sha256
sha384
sha512
hashlib.new(名称[,数据])
是一个通用构造函数,它将所需算法的字符串名称作为其第一个参数。它还允许访问上面列出的哈希值以及您的OpenSSL库可能提供的任何其他算法。命名构造函数比命名构造函数快得多new(),应该是首选。
>>> hash = hashlib.new('md5',b'hello') >>> hash.hexdigest() '5d41402abc4b2a76b9719d911017c592' >>> import hashlib
使用单独的命名构造函数
>>> msg = hashlib.sha256() >>> msg.update(b'Simple is better than complex') >>> msg.digest() b'\xabz\xd8C(n\xb3\x8b\xf6\x0c\x0e\xf2\x81z\xd7\xf93\x835\xb2\xa1\x9cM\xb1S\x1f\xf7\xf9\x1av-F' >>> msg.block_size 64 >>> msg.hexdigest() 'ab7ad843286eb38bf60c0ef2817ad7f9338335b2a19c4db1531ff7f91a762d46' >>> msg = hashlib.md5() >>> msg.update(b'Simple is better than complex') >>> msg.hexdigest() 'fd34bb8fafd17f1a21d7bb6e38c8dc68'
哈希对象具有以下方法-
Hashlib提供以下属性-
shake_128()和shake_256()算法提供可变长度摘要,length_in_bits//2最高128位或256位安全性。
BLAKE2是RFC7693中定义的加密哈希函数,有两种风格-
BLAKE2b,针对64位平台进行了优化,可生成1到64字节之间任意大小的摘要,
BLAKE2s,针对8到32位平台进行了优化,可生成1到32字节之间任意大小的摘要。