1、hashlib模块介绍
- Python hashlib 模块主要用于进行哈希(hash)操作。
- 哈希(Hash)是一种将任意长度的输入数据映射为固定长度输出数据的算法。
- hashlib 模块提供了常见的哈希算法的实现,如 MD5、SHA-1、SHA-256 等。
2、hashlib模块的使用
2.1 hashlib是内置模块,直接导入
from hashlib import md5 , sha256 , sha512
2.2 hashlib的方法和作用
一个哈希对象只能操作update一个字节串,获取hexdigest一个加密后的字符串!
hashlib的方法 | 作用 | |
---|---|---|
对象创建 | hashlib.hash算法名('字节串') | 创建hash对象 |
hash对象的方法 | hash对象.update('字节串') | 生成hash值 |
hash对象.digest() | 获取hash后的字节串 | |
hash对象.hexdigest() | 获取hash后的字符串 |
示例:把字符串‘abc’进行md5摘要加密
from hashlib import md5, sha1, sha256data = "abc"
mdbObj = md5()
mdbObj.update(data.encode('utf-8'))
print(mdbObj.hexdigest()) # 900150983cd24fb0d6963f7d28e17f72
3、理解MD5,sha256...
- 不论是md5,sha1,sha256...都是摘要算法,都是计算hash值,只是散列程度不同;
- hash散列算法是不可逆的,所以不存在解密的逻辑;
- 这些算法操作都一致,用法统一;
例: 把字符串 ‘123456’进行sha256摘要加密
from hashlib import md5, sha1, sha256data = "123456"
#获取sha256对象
mdbObj = sha256()
#对数据data进行散列操作
mdbObj.update(data.encode('utf-8'))
#获取散列后数据
print(mdbObj.hexdigest())
# 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92