zip上的Python简单暴力[关闭]

问题描述 投票:-1回答:2

我需要制作一个python 3脚本,以暴力破解具有3位数字代码的zip文件。我需要这样做,以便一旦找到一个组合就可以告诉我它具有覆盖功能,而不是覆盖它,所以我认为我需要使用try和except,但是我对预期的无效语法有一个错误,但我没有真的知道我应该期待什么错误,这是我的代码,谢谢。编辑:我在除外上有一个缩进错误,但是我没有收到任何输出

import zipfile 
filename = 'alien-zip-2092.zip'  

password = None 
openzip = zipfile.ZipFile(filename)
for i in range(1001):
  password = i 
  try:
    openzip.extractall(pwd=password)
    password = 'Password found: %s' % password
    print (password)
  except:
    pass 
python for-loop unzip brute-force
2个回答
0
投票

zipfile.extractall中的pwd参数应该以字节为单位。


0
投票

两件事浮现在我的脑海:

  1. 如果代码严格是三位数字,则可能以一个或多个零开头,因此必须将其转换为填充零的字符串
  2. 正如另一个答案所说,zipfile模块需要密码作为字节序列,就像str.encode()所提供的一样

import zipfile 
filename = 'test.zip'  

password = None 
openzip = zipfile.ZipFile(filename)
for i in range(1001):
  password = "%03d" % i                                 # 001, 002, etc.
  try:
    openzip.extractall(pwd=password.encode("ASCII"))    # the encode() call
    password = 'Password found: %s' % password
    print(password)
    break                                               # so it stops
  except:
    pass

两个中的第三个是break

© www.soinside.com 2019 - 2024. All rights reserved.