MD5解密凭证

2024-10-03 13:21:38 发布

您现在位置:Python中文网/ 问答频道 /正文

__author__ = 'Zane'
import hashlib
import sys

if (len(sys.argv)!=2 ) or (len(sys.argv[1])!= 32):

    print("[---] md5cracker.py & hash")
    sys.exit(1)


    crackedmd5 = sys.argv[1]

    # open a file and read its contents

    f = open('file.txt')

    lines = f.readline()

    f.close()


    for line in lines:

        cleanline = line.rstrip()

        hashobject = hashlib.md5(cleanline)

        if (hashobject==crackedmd5):

            print('Plain text password for ' + crackedmd5 + "is "  + hashobject + '\n')

我没有错误的退出代码1,我不知道我哪里弄错了


Tags: importforlenifsyslineopenfile
2条回答

您的程序退出时状态代码为1,因为您告诉过它(大致在第8行):

sys.exit(1)

Pythons代码结构基于行的缩进。现在,您的整个代码是if (len(sys.argv)!=2 ) or (len(sys.argv[1])!= 32):条件的一部分。在

您需要从crackedmd5 = sys.argv[1]开始取消所有行的缩进


编辑

您还使用了lines = f.readline(),它将只读取一行,因此for line in lines将迭代该行中的每个字符,而不是多行。您需要使用lines = f.readlines()。在

相关问题 更多 >