2014-09-18 9 views
10

Ich habe eine Datei, die eine Menge Strings enthält. Ich versuche, SHA1-Hashes dieser Strings zu berechnen einzeln und speichert dieseBerechne SHA1 von Strings in Python

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") 

Die Frage, die ich bin vor ist einmal Strings SHA1 die nächste Zeichenkette berechnet wird, angehängt wird (ich fühle mich aus diesem Grund bin ich nicht immer die Korrekte Hashes) und sein Hash wird berechnet. Daher bekomme ich nicht die richtigen Hashes. Ich bin neu in Python. Ich weiß, was zu tun ist, weiß aber nicht, wie es geht. Kannst du mir in die richtige Richtung zeigen, um das zu tun?

Antwort

13

Sie über eine Datei laufen, die die Linien zurückkehren wird, einschließlich der Leitungsabschluss (a \n Zeichen am Ende der Zeichenfolge)

Sie sollten es entfernen:

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

GesichtPalm !!! -_- –