Discuss / Python / 为啥同样字符串的MD5不一样啊

为啥同样字符串的MD5不一样啊

Topic source

import hashlib passwd=['cp1232123','cp00000','cp.123321','cp1232123','cp00000','cp.123321'] md5=hashlib.md5() with open('c:\Users\Thinkpad\Desktop\passwordmd5_3.txt','w') as f: for i in passwd: md5.update(i.encode('utf-8'))

    f.write(md5.hexdigest()+'\n') #将转换的MD5写入文件

print('MD5转换完毕')

5a9c7aea627107f8d29844b7dd4337b6 03bf83c11a6e13aa061e598c199f4b4b 7ae41f809f507d96eba228ee15888ca8 4c76881ac1e1c0df9d00e7453aa13dee ae905502c2fe8dc5080c3af60f0600b0 7fb89509325ff9f9b722c0db143be43a

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

一个md5实例不要反复用

老师教程前面说过,md5可以分块多次调用。也就是说你每次md5.hexdigest()之后的结果都是和之前的分块合并之后的结果

应该这样写

import hashlib
passwd=['cp1232123','cp00000','cp.123321','cp1232123','cp00000','cp.123321']
h=[]
n=0
with open('C:\Documents and Settings\Administrator\桌面\md5.txt','w') as f:
    for i in passwd:
        h.append(hashlib.md5())
        h[n].update(i.encode('utf-8'))
        f.write(h[n].hexdigest() + '\n')
        n+=1

print('MD5转换完毕')

  • 1

Reply