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

Posted

技术标签:

【中文标题】Zip文件破解器python 3只会在文本文件末尾使用密码【英文标题】:Zip file cracker python 3 will only use password at end of text file 【发布时间】:2014-03-26 02:03:32 【问题描述】:

我几天来一直在寻找和捣乱,试图在 python 3 中制作一个 zip 饼干。

我有一个名为 passwords.txt 的文本文件,其中包含我的密码。并且每个密码都在一个新行中。 (行与行之间没有空格)

例如:

password
house
qwerty

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

password
qwerty
house

脚本不会破解 zip。如果将“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()

我们将不胜感激。

【问题讨论】:

我猜......你从文件中读取的行有行尾字符,所以它们实际上不是正确的密码。最后一行没有行尾字符,因为它后面没有空行,所以当密码在那个位置时它可以工作。作为循环中的第一件事,在 try 上方添加:line = line.strip() 以从行的开头/结尾删除空格/换行符。 【参考方案1】:

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

您也可以将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'

【讨论】:

【参考方案2】:
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

【讨论】:

欢迎来到 SO 并感谢您发布答案。请考虑在您的代码中添加上下文。另外,请正确格式化您的代码。有关格式化的帮助,请参阅 this page

以上是关于Zip文件破解器python 3只会在文本文件末尾使用密码的主要内容,如果未能解决你的问题,请参考以下文章

Python 3.7.2 32-Bit ZIP 密码破解器

python写zip破解器

Python黑客实战编程——3分钟教你暴力秒破zip文件口令的方法详解

利用 Python 破解 ZIP 或 RAR 文件密码

Python与Hack之Zip文件口令破解

暴力穷举zip压缩文件的密码