搜索哈希密码文件Python

时间:2017-03-28 14:13:30

标签: python function python-3.x hash

这是学校作业,不是个人收入

我正在创建一个脚本,用于搜索填充了密码的文件,并使用哈希等效项。文件本身是纯文本密码,我使用循环转换为md5,然后搜索,并匹配我预设“testmd5”的值。

我遇到的问题是,它一直返回“未找到”。散列值在文本文件中,所以我猜我没有正确地将纯文本转换为文件中的哈希值!

import hashlib
testmd5 = "a90f4589534f75e93dbccd20329ed946"

def makemd5(key_string):
    new_keystring=key_string.encode('utf-8')
    return (hashlib.md5( new_keystring ).hexdigest())

def findmd5(makemd5):
    found = False
    with open("passwords.txt", "rt") as in_file:
       text = in_file.readline()
    for text in ("passwords.txt"):
        if makemd5(text) == testmd5:
            print(text)
            found = True
    if found == False:
        print("Not Found")

def main():
    findmd5(makemd5)

main()

对此有任何帮助将不胜感激!

这是我刚学会读取文件的方法。

with open("test.txt", "rt") as in_file:
    while True:
        text = in_file.readline()
        if not text:
           break
        print(text)

1 个答案:

答案 0 :(得分:0)

您实际上并未搜索该文件,而是搜索字符串"passwords.txt"。您还会错过函数调用readline中的括号,我认为它应该是readlines(),以便您可以迭代行列表:

import hashlib
testmd5 = "a90f4589534f75e93dbccd20329ed946"

def makemd5(key_string):
    new_keystring=key_string.encode("utf-8")
    return (hashlib.md5( new_keystring ).hexdigest())

def findmd5():
    found = False
    with open("passwords.txt", "rt") as in_file:
       full_text = in_file.readlines()
    for text in full_text:
        if makemd5(text) == testmd5:
            print(text)
            found = True
    if found == False:
        print("Not Found")

if __name__ == "__main__":
    findmd5()

似乎没有必要传递makemd5函数,所以我删除了它。

与引号一致,您使用单'utf-8',但在其他地方使用双引号。