2017-02-06 5 views
0

나는 가능한 한 빨리 파이썬에 익숙하다. 정렬되지 않은 두 개의 대형 텍스트 파일을 비교하려고 시도하고 있으므로 두 가지 방법을 비교해야합니다. A-B 및 B-A. 파일 크기가 매우 커서 해시 방법을 사용하려고합니다.큰 텍스트 파일 비교 haslib을 사용한 파이썬

실제 요구 사항 : 1. 구분 된 텍스트 파일을 모두 비교하십시오. A-B 및 B-A. 텍스트에 2. 쓰기 일치하지 않는 행은 파일을 엑셀에서 VLOOKUP과 같은 비교

문제 : 나는 각 라인의 해시 값을 얻을 수 있어요하지만 두 파일을 비교하고 실제 일치하지 않는 라인을 서면으로 문제가 (해시 값 아님)을 텍스트 파일에 저장합니다.

코드 :

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) 

답변

0

해시는하지만 평등 검사에 대한 변경의 탐지를 위해 설계되지 않았습니다. 비트가 변경 될 때마다 해시 비트의 절반 이상을 변경해야합니다.

해시를 사용하여 두 스트림의 차이점을 감지 할 수있는 경우 다른 해시를 계산하고 해당 방법을 사용하여 추측 된 암호의 부분을 변경해야하는지 확인하여 암호를 해독 할 수 있습니다.

변경 사항이 발생할 때까지 파일을 한 줄씩 반복해야합니다.