【发布时间】:2020-07-05 09:23:09
【问题描述】:
编辑:
这工作的时候是我使用 ZIPCrypto 压缩的时候。 AES-256 失败了。请问如何解决这个问题?
这快把我逼疯了。
我之前使用以下 Python 代码成功打开了使用 7-Zip 创建的受密码保护的 .zip 文件:
import zipfile
zip_file = zipfile.ZipFile('crack_me.zip')
output_verbose = 1 # 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'\r\n')
zip_file.extractall(pwd=pwd)
except RuntimeError as e:
print(e)
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()
但是,由于无法理解的原因,它在多次尝试中只成功了几次。大多数情况下会给出“不支持该压缩方法”的例外情况。
我尝试删除、重命名、重新创建 .zip 文件,但没有成功。对我来说,它偶尔会起作用是没有意义的。
我试图将问题简化如下:
import zipfile
zip_file = zipfile.ZipFile('crack_me.zip')
try:
zip_file.extractall(pwd=b"password")
print('Opened')
except RuntimeError as e:
print(e)
但我得到了同样的例外。我尝试过 pwd 的变体,例如 bytes("password", "utf-8) 等。
使用 7-Zip 打开时,提供的密码会打开 .zip 文件。
请问这是怎么回事?
【问题讨论】:
-
您能否提供您可能已传递给
7z的确切命令行参数,您使用该参数创建了 zip 文件?如果您没有明确指定标准 zip 方法(即传递-tzip标志),Python 的zipfile模块将无法打开它。 -
已编辑:使用 AES-256 失败。请问如何解决这个问题?
-
也许试试 pyzipper?