我一直在寻找和捣乱几天试图在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()
任何帮助将不胜感激。
答案 0 :(得分:3)
使用\n
而不是line
从line.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