用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 越往后加密算法越复杂,这些算法都是不可逆的,MD5 算法
1 import hashlib 2 obj=hashlib.md5() 3 obj.update("admin".encode("utf8")) 4 print(obj.hexdigest()) #21232f297a57a5a743894a0e4a801fc3 5 6 obj.update("root".encode("utf8"))#这时候加密的字符串是"adminroot" 7 print(obj.hexdigest())# 4b3626865dc6d5cfe1c60b855e68634a 8 # 4b3626865dc6d5cfe1c60b855e68634a 9 obj2=hashlib.md5("sb".encode("utf8"))#以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。,这个步骤叫加盐 10 obj2.update("admin".encode("utf8")) 11 print(obj2.hexdigest()) #e560d00d77b6997bbcba34ce36a0d745
python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密:
import hmac h = hmac.new('alvin'.encode('utf8')) h.update('hello'.encode('utf8')) print (h.hexdigest())#320df9832eab4c038b6c1d7ed73a5940