我有一个包含很多字符串的文件。我试图分别计算这些字符串的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的新手。我知道该怎么做,但不知道该怎么做。你能指出我正确的方向来解决这个问题吗?
答案 0 :(得分:15)
您正在迭代一个文件,该文件将返回行,包括行终止符(字符串末尾的\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")