Вычислить SHA1 строк в python

У меня есть файл, который содержит много строк. Я пытаюсь вычислить хэши SHA1 этих строк по отдельности и сохранить их

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

проблема, с которой я сталкиваюсь, - это как только строки SHA1 вычисляются, следующая строка добавляется(я чувствую, что именно поэтому я не получаю правильные хэши), и ее хэш вычисляется. Поэтому я не получаю правильные хеши. Я новичок в Python. Я знаю, что делать, но не знаю как это сделать. Ты можешь указать мне верное направление? заняться этим?

1 ответов


вы перебираете файл, который собирается вернуть строки, включая Терминатор строки (a \n символ в конце строки)

вы должны удалить его:

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