使用haslib的大文本文件比较Python

时间:2017-02-06 17:06:54

标签: python hash compare text-files md5

我是python的新手并尽可能快地学习。我试图比较两个没有排序的大文本文件,所以我必须比较两种方式.i.e。 A-B和B-A。文件大小非常大,所以我尝试使用哈希方法。

实际要求: 1.比较两个分隔的文本文件.i.e。 A-B和B-A。比较像excel中的Vlookup 2.将不匹配的行写入文本文件

问题: 我能够获得每一行的哈希值,但我在比较两个文件并将实际不匹配的行(而不是哈希值)写入文本文件时遇到问题。

代码:

from hashlib import sha1
import csv

File1 = 'text1.txt'
File2 = 'text2.txt'
output = 'output.txt'

with open(File1, 'r') as ifile:
        for line in ifile:
            line = line.rstrip()
            digest = sha1(line).hexdigest()

with open(File2, 'r') as ifile1:
    for line1 in ifile1:
        line1 = line1.rstrip()
        digest1 = sha1(line1).hexdigest()

        writer = csv.writer(open(output, "w"))
        for i in digest:
            for xl in digest1:
                if i[0] == xl[0]:
                    i.append(xl[1:])
                    writer.writerow(i)
                digest.seek(0)

1 个答案:

答案 0 :(得分:0)

哈希不是为更改检测而设计的,而是用于相等性检查。每次更改都必须导致至少一半散列位的更改。

如果您可以使用哈希检测两个流中的差异,则可以通过计算不同的哈希来破解密码,并使用该方法确定应该更改猜测密码的哪些部分。

您应该逐行迭代文件,直到遇到更改。