РЕДАКТИРОВАТЬ:
Времена, когда это работало, были, когда я использовал сжатие ZIPCrypto. Именно с AES-256 это не удается. Как обойти это, пожалуйста?
Это сводит меня с ума сейчас.
Ранее я успешно использовал следующий код Python для открытия защищенного паролем файла .zip, созданного с помощью 7-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
, такие как байты (пароль, utf-8) и другие.
Предоставленный пароль открывает файл .zip при открытии с помощью 7-Zip.
Что здесь происходит, пожалуйста?
7z
, с которыми вы создали zip-файл? Если вы явно не указали стандартный метод zip (т.е. передали флаг-tzip
), модуль Pythonzipfile
не сможет его открыть. - person metatoaster   schedule 05.07.2020