我有一些内容相同但文件名不同的文本文件.但是对于相同的内容文件,我得到了不同的哈希值


import hashlib
import os
fileDir = 'F:\hashcodepy'
files_list = []
for dirpath,_,filenames in os.walk(fileDir):
for f in filenames:
files_list.append(os.path.abspath(os.path.join(dirpath,f)))
filehashcode = []
buffer_size = 1024
hash_code = hashlib.md5()
for x in files_list:
f1 = open(x,'rb').read(buffer_size)
hash_code.update(f1)
filehashcode.append(hash_code.hexdigest())
print(filehashcode)
这是我的代码。运行无错误。但是所有的哈希码值都不一样。我有相同的文件,但名称不同。当我用手动输入的文件运行程序时,我得到了相同的哈希值。所有文件在F:驱动器与hashcodepy目录。在这个目录里,我一遍又一遍地复制同一个文件。请给我一些建议。谢谢你。

您正在为所有文件重用相同的哈希对象,而不重置它。请注意hash.update()文档中的以下内容:

重复调用相当于将所有参数串联起来进行单个调用:M.update (b)等价于M.update (a+b)。

最新更新