Вычислить 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

Вы повторяете файл, который будет возвращать строки, включая терминатор строки (символ \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")