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