在python中计算字符串的SHA1

时间:2014-09-18 01:18:08

标签: python hash sha

我有一个包含很多字符串的文件。我试图分别计算这些字符串的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 个答案:

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