Как определить метод сжатия файла ZIP/RAR

У меня есть несколько файлов zip и rar, с которыми я работаю, и я пытаюсь проанализировать свойства сжатия каждого файла (уровень сжатия, алгоритм сжатия (например, deflate, LZMA, BZip2), размер словаря, размер слова и т.д.), и я еще не понял способ сделать это.

Есть ли способ проанализировать файлы для определения этих свойств, с программным обеспечением или иным образом?

Приветствия и спасибо!

Ответы

Ответ 1

Я предлагаю hachoir-wx, чтобы посмотреть эти файлы. Как установить пакет Python или вы можете попробовать ActivePython с PyPM при использовании Windows. Когда у вас установлены необходимые пакеты hachoir, вы можете сделать что-то вроде этого, чтобы запустить GUI:

python C:\Python27\Scripts\hachoir-wx

Позволяет просматривать поля данных RAR и ZIP файлов. Смотрите пример скриншот для примера.

Для файлов RAR просмотрите файл technote.txt, который находится в каталоге установки WinRAR. Это дает подробную информацию о спецификации RAR. Вам, вероятно, будут интересны следующие:

 HEAD_FLAGS      Bit flags: 2 bytes
                 0x10 - information from previous files is used (solid flag)
                 bits 7 6 5 (for RAR 2.0 and later)
                      0 0 0    - dictionary size   64 KB
                      0 0 1    - dictionary size  128 KB
                      0 1 0    - dictionary size  256 KB
                      0 1 1    - dictionary size  512 KB
                      1 0 0    - dictionary size 1024 KB
                      1 0 1    - dictionary size 2048 KB
                      1 1 0    - dictionary size 4096 KB
                      1 1 1    - file is directory

Размер словаря также можно найти в графическом интерфейсе WinRAR.

 METHOD          Packing method 1 byte
                 0x30 - storing
                 0x31 - fastest compression
                 0x32 - fast compression
                 0x33 - normal compression
                 0x34 - good compression
                 0x35 - best compression

И Wikipedia также знает это:

Утилита сжатия RAR является запатентованной с закрытым алгоритмом. RAR принадлежит Александру Рошалу, старшему брату Евгения Рошала. Версия 3 RAR основана на Lempel-Ziv (LZSS) и прогнозировании с помощью частичного согласования (PPM), в частности, PPMd реализации PPMII Дмитрия Шкарина.

Для файлов ZIP я бы начал с рассмотрения спецификаций и Страница Wikipedia. Вероятно, это интересно:

  general purpose bit flag: (2 bytes)
  compression method: (2 bytes)

Ответ 2

Это довольно старый вопрос, но я все равно хотел бросить свои два цента, так как некоторые из вышеперечисленных методов были не так легко использовать.

Вы также можете определить это с помощью 7-Zip. После открытия архива есть столбец для метода сжатия:

7zip properties

Ответ 3

Для ZIP - да, zipinfo

Для RAR заголовки легко найти либо с 7Zip, либо с WinRAR, прочитайте прилагаемую документацию

Ответ 4

Для файлов ZIP есть команда zipinfo.

Ответ 5

Тип прост, просто посмотрите на заголовки файлов (PK и Rar).

Что касается остальных, я сомневаюсь, что информация доступна в сжатом контенте.