import hashlib
#md5加密工具,md5是不可逆的,所以只能比较密文,不能比较明文,python中不仅仅提供md5加密方法,还提供sha1,sha224,sha256,sha384,sha512,MD5加密算法
test_md5 = hashlib.md5() test_md5.update(bytes('123',encoding='utf-8')) ret = test_md5.hexdigest() print(ret)
#还可以提供一个key
test_md5 = hashlib.md5(bytes('abbbbb',encoding='utf-8')) test_md5.update(bytes('123',encoding='utf-8')) ret = test_md5.hexdigest() print(ret)
还可以使用sha1的方法
test_sha1 = hashlib.sha1() test_sha1.update(bytes("123",encoding="utf-8")) ret = test_sha1.hexdigest() print(ret)
#sha1的方法也可以提供一个key
test_sha1 = hashlib.sha1(bytes("123",encoding="utf-8")) test_sha1.update(bytes("123",encoding="utf-8")) ret = test_sha1.hexdigest() print(ret)
#其他的算法的使用方法可以sha1和md5的方法都是雷同的,大家可以自己私下尝试
我们可以看下下面的例子,就可以大致看出一些端倪,意思就是每个hashlib对象只能加密一个字符串,不能多次使用
import hashlib s1 = "alex" s2 = "sb" s3 = "alexsb" m1 = hashlib.md5(bytes("aa",encoding="utf-8")) m1.update(bytes(s1,encoding="utf-8")) m1.update(bytes(s2,encoding="utf-8")) a = m1.hexdigest() print(a) # 5a6021d832f80e3b6067a10dff5b9f30 m2 = hashlib.md5(bytes("aa",encoding="utf-8")) m2.update(bytes(s3,encoding="utf-8")) b = m2.hexdigest() print(b) # 5a6021d832f80e3b6067a10dff5b9f30