Zip文件破解程序python 3只会在文本文件末尾使用密码

时间:2014-03-26 02:03:33

标签: python python-3.x zipfile

我一直在寻找和捣乱几天试图在python 3中制作拉链饼干。

我有一个带有密码的文本文件,名为passwords.txt。并且每个密码都在新行上。 (行间没有空格)

e.g:

password
house
qwerty

脚本运行正常,将在我的zip中提取文件。 (zip密码是qwerty)。但如果我像我这样重新安排我的列表:

password
qwerty
house

脚本不会破解拉链。如果'qwerty'是列表中的最后一个密码,它将在'qwerty'作为列表中的唯一密码时正常工作。对我而言,使用正确的密码后脚本不会终止。我需要朝着正确的方向努力。

这是我的(简单)代码:(我不是专家)

import zipfile
with open('passwords.txt') as passwordList:
    myZip = zipfile.ZipFile('test.zip')
    for line in passwordList:
        try:
            myZip.setpassword(pwd=line.encode())
            myZip.extractall()

        except:
            pass

myZip.close()

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

使用\n而不是lineline.strip(b'\n')变量中删除line.strip(),因为密码本身可能有空格。

您也可以直接将pwd传递给extractall

import zipfile

zip_file = zipfile.ZipFile('test.zip')
output_verbose = 2  # increase that for long password list
with open('passwords.txt', 'rb') as password_list:
    for index, line in enumerate(password_list):
        try:
            pwd = line.strip(b'\n')
            zip_file.extractall(pwd=pwd)
        except RuntimeError:
            if index % output_verbose == 0:
                print('{}. The {} word not matched.'.format(index + 1, pwd))
        else:
            print('{}. Wow ! found the password: {}'.format(index + 1, pwd))
            break

zip_file.close()

演示:

1. The b'password' word not matched.
2. Wow ! found the password: b'qwerty'

答案 1 :(得分:0)

justin =  '''
    +=======================================+

    |..........Zip Cracker v 1.........|

    +---------------------------------------+

    |#Author: JUSTIN                    |

    |#Contact: www.fb.com/rootx        |


    +=======================================+

    |..........ZIP Cracker v 1.........|

    +---------------------------------------+
'''

print justin

import zipfile

z1 = raw_input("Enter Your Zip File:")

z = zipfile.ZipFile(z1)

pf1=str(raw_input( "Enter password list: "))

pf=open(pf1,'r')

for x in pf.readlines():

password = x.strip('\n')

try:

    z.extractall(pwd=password)

    print "pass=" +password+ "\n"

    exit(0)

except Exception,e:
   pass