1 概述
1.1 hashlib 库
> pip install hashlib
1.2 在线加密、解密
2 hashlib 模块
2.1 hashlib 模块的两个常量属性
属性 | 描述 |
---|
hashlib.algorithms_guaranteed | 所有平台中,模块支持的 hash 算法列表 |
hashlib.algorithms_available | 当前 Python 解释器环境中,模块支持的 hash 算法列表 |
>>> hashlib.algorithms_guaranteed
{'sha3_512', 'shake_128', 'sha3_256', 'sha3_384', 'sha256',
'md5', 'sha1', 'sha3_224', 'sha384', 'blake2s', 'shake_256',
'sha224', 'sha512', 'blake2b'}
>>> hashlib.algorithms_available
{'sha3_384', 'sha256', 'sha384', 'sha512_224', 'sha512',
'sha3_512', 'sha1', 'md5-sha1', 'sha3_256', 'sha224',
'md4', 'sm3', 'ripemd160', 'sha512_256', 'sha3_224',
'whirlpool', 'shake_128', 'md5', 'mdc2', 'blake2s', 'shake_256', 'blake2b'}
2.2 hash 对象的属性及方法
import hashlib
from _hashlib import HASH
h: HASH = hashlib.md5()
h.update(b'123abc')
print(h.digest())
print(h.hexdigest())
print(h.digest_size)
print(h.block_size)
print(h.name)
3 示例
3.1 加密
import hashlib
def md5_encrypt(password):
md5 = hashlib.md5()
md5.update(password.encode("utf-8"))
return md5.hexdigest()
if __name__ == '__main__':
password = '123'
password_encrypt = md5_encrypt(password)
print(f'加密前:{password},加密后:{password_encrypt}')
3.2 解密
import hashlib
def md5_encrypt(password):
md5 = hashlib.md5()
md5.update(password.encode("utf-8"))
return md5.hexdigest()
def md5_decrypt(password, md5_str):
return md5_encrypt(password) == md5_str
if __name__ == '__main__':
print(md5_decrypt('123', '202cb962ac59075b964b07152d234b70'))