Python распакует AES-128 зашифрованный файл

Есть ли способ распаковать файл зашифрованного файла AES-128 напрямую с помощью python, поскольку ZipFile вызывает ошибку Bad Password. Если я использую 7zip, он работает, поэтому пароль правильный, но опять же 7zip необходимо установить как зависимость.

Что я пробовал:

from ZipFile import ZipFile zip = ZipFile('test.zip') zip.extractall(pwd='password') 

Это порождает исключение Bad Password.

Проверка файла с помощью 7zip

 7z l -slt test.zip 

Это возвращает:

 Encrypted = + Method = pkAES-128 Deflate 

One Solution collect form web for “Python распакует AES-128 зашифрованный файл”

Модуль zipfile из стандартной библиотеки Python поддерживает только зашифрованные ZIP-файлы с CRC32 (см. Здесь: http://hg.python.org/cpython/file/71adf21421d9/Lib/zipfile.py#l420 ). Таким образом, нет никакой зависимости от какой-либо третьей зависимости.

Самый простой способ – просто установить 7zip и вызвать утилиту 7z командной строки, используя модуль subprocess из стандартного lib:

 import subprocess subprocess.call(["7z", "x", "-ppassword", "test.zip"]) 

Другим вариантом может быть модуль python «PyLzma», который также может обрабатывать зашифрованные архивы 7zip AES: https://github.com/fancycode/pylzma . Он не поддерживает дешифрование классических zip-файлов, но вы можете использовать его подпрограммы для написания собственной функции декомпрессора.

  • Извлечение файлов из zip без сохранения структуры с использованием python ZipFile?
  • загрузить файл pickle из zipfile
  • Установка разрешений для сжатого файла в python
  • Модуль zipfile Python создает несколько файлов с одинаковым именем
  • python / zip: Как устранить абсолютный путь в zip-архиве, если предоставлены абсолютные пути для файлов?
  • Быстрее альтернатива Zipfile-модулю Python?
  • Python: Получение файлов в архив без каталога?
  • Разделители пути Python ZipFile
  • Python - лучший язык программирования в мире.