python_90_hashlib模块
#用于加密相关的操作,3.x里代替了2.x中的md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import hashlib m=hashlib.md5() m.update(b'hello') print(m.digest)#2进制hash print(m.hexdigest())#16进制hash m.update(b"It's me") print(m.hexdigest())#hash结果为累计的,详见下式 # ######## md5 ######## m2=hashlib.md5() m2.update(b"helloIt's me") print(m2.hexdigest())#与上式hash结果一样 # ######## sha1 ########(已基本不用) hash = hashlib.sha1() hash.update('admin'.encode(encoding='utf-8'))#也可以为字节格式 print(hash.hexdigest()) # ######## sha256 ######## hash = hashlib.sha256() hash.update(b'admin')#也可以encode下 print(hash.hexdigest()) # ######## sha384 ######## hash = hashlib.sha384() hash.update('admin'.encode())#也可以为字节格式 print(hash.hexdigest()) # ######## sha512 ######## hash = hashlib.sha512() hash.update(b'zhong')#字节格式不支持中文 print(hash.hexdigest()) ######## 中文格式 ######## hash = hashlib.sha512() hash.update('中国'.encode(encoding='utf-8')) print(hash.hexdigest()) '更厉害的加密:python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密' import hmac h = hmac.new(b'21234',b'love')#可将字节转换为encode,字节只支持ascll码,不支持中文 print(h.hexdigest()) h = hmac.new('天王盖地虎'.encode(encoding='utf-8'), '宝塔镇河妖'.encode(encoding='utf-8')) print(h.hexdigest())