Hashlib模块
用来保证数据安全的模块
Hashlib模块提供了许多供我们调用的hash算法,主要有:
- md5
- SHA系列:sha1, sha224, sha256, sha384, sha512
方法API
API | 描述 |
---|---|
hashlib.algorithms_guaranteed | 可以获取有多少中加密方式 |
hashlib.new(name, data=b”) | 生成一个hash对象 |
hashlib.hash算法名(data=b”) | 生成一个使用该算法的hash对象 |
Hash对象.update(arg=None) | 更新hash对象 |
Hash对象.digest() | 返回Hash算法计算得到的值(bytes类型) |
Hash对象.hexdigest() | 返回Hash算法计算得到的值(str类型) |
使用Hashlib模块需要导包
import hashlib
-
hashlib.algorithms_guaranteed 可以获取有多少中加密方式
print(hashlib.algorithms_guaranteed) #结果 {'sha1', 'sha3_384', 'sha256', 'shake_128', 'sha512', 'sha3_512', 'blake2s', 'blake2b', 'shake_256', 'sha384', 'sha3_256', 'md5', 'sha3_224', 'sha224'}
-
hashlib.new(name, data=b”) 生成一个hash对象
data = '这世界很酷!' res = hashlib.new('md5',data.encode()) print(res) #结果处理为二进制 print(res.digest()) #结果处理为md5 print(res.hexdigest()) #输出如下 <md5 HASH object @ 0x00000000006375F8> b'\x8d\x81\xcc@\xda\xed37Z\x94\x00\x03X\xe4\x9d\xeb' 8d81cc40daed33375a94000358e49deb
-
hashlib.hash算法名(data=b”) 生成一个使用该算法的hash对象
data1 = 'hello python!' res1 = hashlib.sha256(data1.encode()) print(res1) #结果处理为HASH sha256 对象 print(res1.hexdigest()) #输出如下 <sha256 HASH object @ 0x0000000001DE8670> b4273ad6ed54c9f5865535daa7ebb5892d2c76bb8310eecd762eb2010ec76272
-
Hash对象.update(arg=None) 更新hash对象
data2 = 'hello world python!' #重新写入对象的数据 res1.update(data2.encode()) #返回Hash算法计算得到的值(str类型) res1.hexdigest() print(res1.hexdigest()) data3 = '我是雨轩大厦波!' #再次重新写入对象的数据 res1.update(data3.encode()) #返回Hash算法计算得到的值(bytes类型) res.digest() print(res.digest()) print(res1.hexdigest()) #输出结果 94176670bc376091107a689e02c053a0245232e72cf20c8a4a03caf7a6910569 b'\x8d\x81\xcc@\xda\xed37Z\x94\x00\x03X\xe4\x9d\xeb' add03a7b4b33bbee8fe238c1a5a9e5d835539e7cb65546fffca86ea6ebb7078f