模块-hashlib,hmac
用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
import hashlib m = hashlib.md5() m.update(b"Hello") m.update(b"It's me") print(m.digest())#b']\xde\xb4{/\x92Z\xd0\xbf$\x9cR\xe3Br\x8a' m.update(b"It's been a long time since last time we ...") print(m.digest()) # 2进制格式hash b'\xa0\xe9\x89E\x03\xcb\x9f\x1a\x14\xaa\x07?<\xae\xfa\xa5' print(len(m.hexdigest())) # 16进制格式hash #32 import hashlib # ######## md5 ######## hash = hashlib.md5() hash.update(b'admin') print(hash.hexdigest())#21232f297a57a5a743894a0e4a801fc3 # ######## sha1 ######## hash = hashlib.sha1() hash.update(b'admin')#d033e22ae348aeb5660fc2140aec35850c4da997 print(hash.hexdigest()) # ######## sha256 ######## hash = hashlib.sha256() hash.update(b'admin')#8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 print(hash.hexdigest()) # ######## sha384 ######## hash = hashlib.sha384() #9ca694a90285c034432c9550421b7b9dbd5c0f4b6673f05f6dbce58052ba20e4248041956ee8c9a2ec9f10290cdc0782 hash.update(b'admin') print(hash.hexdigest()) # ######## sha512 ######## hash = hashlib.sha512() #c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec hash.update(b'admin') print(hash.hexdigest())
还不够吊?python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密
散列消息鉴别码,简称HMAC,是一种基于消息鉴别码MAC(Message Authentication Code)的鉴别机制。使用HMAC时,消息通讯的双方,通过验证消息中加入的鉴别密钥K来鉴别消息的真伪;
一般用于网络通信中消息加密,前提是双方先要约定好key,就像接头暗号一样,然后消息发送把用key把消息加密,接收方用key + 消息明文再加密,拿加密后的值 跟 发送者的相对比是否相等,这样就能验证消息的真实性,及发送者的合法性了。
import hmac h = hmac.new(b'abc123', b'dream123') #不支持中文 print(h.hexdigest())#66603b9c012d81a6c19d6b2d2e1827ea
更多关于md5,sha1,sha256等介绍的文章看这里https://www.tbs-certificates.co.uk/FAQ/en/sha256.html

浙公网安备 33010602011771号