加密模块hashlib模块(* *)

用于加密相关的操作,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
原文地址:https://www.cnblogs.com/jiawen010/p/9929015.html