md5的一个小坑

import hashlib

name ='jooooo'

md5 = hashlib.md5()

重复打印五次加密结果

for iin range(5):

      md5.update(name.encode())

      print(md5.hexdigest())

      26fa44ee166808ce91ebe904115d6dc3

      4b1b89254695662f91073dc8396fedfe

      7e8861b89933a2d0d36e6c7b273938f0

      ffb3384a6d3cb7ff701dc518fe7efdfa

      5797bcedfea7322ec5557eb0b540b4ac

同一数据经过多次加密,发现结果不同,与预期结果不符,因为使用的是同一md5对象,而同一个md5对象进行加密,每次加密结果都会加入下一次加密,自然会产生与预期不同的结果;而要实现预期结果,需要每次加密都新建一个md5对象。

修改代码:

name ='jooooo'

for iin range(5):

md5 = hashlib.md5()

md5.update(name.encode())

print(md5.hexdigest

结果如下:

     26fa44ee166808ce91ebe904115d6dc3

     26fa44ee166808ce91ebe904115d6dc3

     26fa44ee166808ce91ebe904115d6dc3

     26fa44ee166808ce91ebe904115d6dc3

    26fa44ee166808ce91ebe904115d6dc3

与预期相符,成功实现加密目的。

你可能感兴趣的:(md5的一个小坑)