MD5解密脚本

时间:2015-02-05 22:03:41

标签: 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没有错误,我不知道哪里弄错了

2 个答案:

答案 0 :(得分:2)

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

sys.exit(1)

答案 1 :(得分:0)

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()