2014-09-18 21 views
10

Mam plik, który zawiera wiele ciągów znaków. Próbuję obliczyć hashe SHA1 tych ciągów indywidualnie i przechowywać teObliczyć SHA1 ciągów w pytonie

import hashlib 
inp = open("inp.txt" , "r") 
outputhash = open("outputhashes.txt", "w") 
for eachpwd in inp: 
    sha_1 = hashlib.sha1() 
    sha_1.update(eachpwd) 
    outputhash.write(sha_1.hexdigest()) 
    outputhash.write("\n") 

Problem jestem stoi jest raz SHA1 ciągi obliczany jest kolejny ciąg jest dołączany (czuję to dlaczego ja nie otrzymuję poprawne hashy) i obliczany jest jego skrót. Dlatego nie otrzymuję poprawnych skrótów. Jestem nowy w Pythonie. Wiem, co robić, ale nie wiem, jak to zrobić. Czy możesz wskazać mi właściwy kierunek, aby do tego dojść?

Odpowiedz

13

Ty iteracji nad plikiem, który zamierza powrócić linie, łącznie z terminatorem linii (a \n znaków na końcu ciągu)

Należy go wyjąć:

import hashlib 
inp = open("inp.txt" , "r") 
outputhash = open("outputhashes.txt", "w") 
for line in inp:   # Change this 
    eachpwd = line.strip() # Change this 

    # Add this to understand the problem: 
    print repr(line) 

    sha_1 = hashlib.sha1() 
    sha_1.update(eachpwd) 
    outputhash.write(sha_1.hexdigest()) 
    outputhash.write("\n") 
+0

FacePalm !!! -_- –