我需要制作一个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
zipfile.extractall中的pwd参数应该以字节为单位。
两件事浮现在我的脑海:
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
。