问题描述:
初次使用python3种hashlib模块的md5加密方法时,对同一个字符串的多次加密结果不同,如下图所示:
代码为:
import hashlib
a = hashlib.md5()
a.update('123'.encode(encoding='utf-8'))
print(a.hexdigest())
a.update('123'.encode(encoding='utf-8'))
print(a.hexdigest())
a.update('123'.encode(encoding='utf-8'))
print(a.hexdigest())
解决方案:
通过查找相关文档发现,如果通过一个md5实例对同一个字符串多次加密时,它实质上是在加密每次明文的叠加。即第一次加密的是“HelloWorld”,第二次加密的是“HelloWorldHelloWorld”,依次类推。正确的使用方式如下图所示:
代码为:
import hashlib
a = hashlib.md5()
a.update('123'.encode(encoding='utf-8'))
print(a.hexdigest())
a = hashlib.md5()
a.update('123'.encode(encoding='utf-8'))
print(a.hexdigest())
a = hashlib.md5()
a.update('123'.encode(encoding='utf-8'))
print(a.hexdigest())