几个不同文件的SHA1哈希值相同 - python

时间:2016-08-09 17:39:10

标签: python hash hashmap sha1

我使用SHA1哈希来识别目录中的相同文件,然后删除重复项。每当我运行我的脚本时,似乎为我的大多数文件创建了适当的哈希。但是,我有几个非常不同的文件,它们会产生相同的哈希值。我知道这样的碰撞几乎不可能发生,所以我想知道下面的代码是否有问题:

hashmap = {}
for path, dirs, files in os.walk(maindirectory):
    for filename in files:
        fullname = os.path.join(path, filename)
        with open(fullname) as f:
            d = f.read()
            h = hashlib.sha1(d).hexdigest()
            filelist = hashmap.setdefault(h, [])
            filelist.append(fullname)
# delete records in dictionary that have only 1 item (meaning no duplicate)
for k, v in hashmap.items():
    if len(v) == 1:
        del hashmap[k]

当我返回我的字典,hashmap时,有一些可预测的重复项,然后有一个散列有大约40个唯一文件。任何建议,提示或解释将非常感谢!

0 个答案:

没有答案