7z - 7z

редактировать
Семейство форматов архивных файлов, используемых 7-Zip

Формат файла 7z
7zip-архив icon.svg
Расширение имени файла .7z
Тип Интернет-носителя application / x-7z-compressed
унифицированный идентификатор типа (UTI) org.7-zip.7-zip-archive
Magic number '7', 'z', 0xBC, 0xAF, 0x27, 0x1C
РазработаноИгорем Павловым
Первоначальный выпуск1999; 21 год назад (1999)
Тип форматаСжатие данных
Открытый формат ?Да: Стандартная общественная лицензия ограниченного применения GNU / Общественное достояние
Веб-сайт7-zip.org

7z- это сжатый архивный формат файла, который поддерживает несколько различных алгоритмов сжатия данных, шифрования и предварительной обработки. Формат 7z изначально появился как реализованный архиватором 7-Zip. Программа 7-Zip является общедоступной на условиях Стандартной общественной лицензии ограниченного применения GNU. LZMA SDK 4.62 был помещен в общественное достояние в декабре 2008 года. Последней стабильной версией 7-Zip и LZMA SDK является версия 19.00.

Файл 7z спецификация формата распространяется с исходным кодом 7-Zip. Спецификацию можно найти в текстовом формате в подкаталоге 'doc' дистрибутива исходного кода.

Содержание
  • 1 Функции и улучшения
    • 1.1 Методы сжатия
    • 1.2 Фильтры предварительной обработки
    • 1.3 Шифрование
    • 1.4 Ограничения
  • 2 См. Также
  • 3 Ссылки
  • 4 Дополнительная литература
  • 5 Внешние ссылки
Возможности и улучшения

Формат 7z предоставляет следующие основные возможности:

  • Открытая, модульная архитектура, которая позволяет использовать любой метод сжатия, преобразования или шифрования.
  • Высокая степень сжатия (в зависимости от используемого метода сжатия).
  • AES -256 шифрование.
  • Поддержка больших файлов (приблизительно до 16 exbibytes, или 2 байта).
  • Unicode имена файлов.
  • Поддержка твердого сжатия, при котором несколько файлов одинакового типа сжимаются внутри единый поток, чтобы использовать комбинированную избыточность, присущую аналогичным файлам.
  • Сжатие и шифрование архива заголовков.
  • Поддержка составных архивов: например, xxx.7z.001, xxx.7z.002,... (см. пункты контекстного меню Разделить файл... для их создания и Объединить файлы... для повторной сборки архива из набора файлов, состоящих из нескольких частей.
  • Поддержка пользовательских DLL подключаемых модулей кодека.

открытая архитектура формата позволяет в будущем добавлять к стандарту дополнительные методы сжатия.

Методы сжатия

В настоящее время определены следующие методы сжатия:

Набор инструментов повторного сжатия под названием AdvanceCOMP содержит копию кодировщика DEFLATE из реализации 7-Zip; эти утилиты часто можно использовать для дальнейшего сжатия существующих файлов gzip, ZIP, PNG или MNG.

Фильтры предварительной обработки

LZMA SDK поставляется с BCJ и включенными препроцессорами, чтобы на более поздних этапах можно было добиться большего сжатия: Для x86, ARM, PowerPC (PPC), IA-64 Itanium и ARM Thumb, цели перехода "нормализованы" перед сжатием путем изменения относительного положения на абсолютные значения. Для x86 это означает, что ближние переходы, вызовы и условные переходы (но не короткие переходы и условные переходы) преобразуются из нотации стиля машинного языка «переход на 1655 байт назад» в нормированную нотацию стиля «переход к адресу 5554»; все переходы к 5554, возможно, к общей подпрограмме, таким образом, кодируются одинаково, что делает их более сжимаемыми.

  • BCJ - Конвертер для 32-битных исполняемых файлов x86. Нормализовать целевые адреса ближайших переходов и вызовов с относительных расстояний до абсолютных пунктов назначения.
  • BCJ2– Препроцессор для 32-битных исполняемых файлов x86. BCJ2 - это усовершенствование BCJ, добавляющее дополнительную обработку инструкций перехода / вызова x86. Ближний переход, ближний вызов, условные цели ближнего перехода разделяются и сжимаются отдельно в другом потоке.
  • Дельта-кодирование - дельта-фильтр, базовый препроцессор для мультимедийных данных.

Подобная технология предварительной обработки исполняемых файлов включена в другое программное обеспечение; компрессор RAR поддерживает сжатие смещения для 32-битных исполняемых файлов x86 и исполняемых файлов IA-64, а компрессор исполняемых файлов времени выполнения UPX включает поддержку работы с 16-битными значениями в пределах DOS двоичные файлы.

Шифрование

Формат 7z поддерживает шифрование с алгоритмом AES с 256-битным ключом. Ключ генерируется из введенной пользователем кодовой фразы с использованием алгоритма, основанного на хэш-функции SHA-256. SHA-256 выполняется 2 (262144) раза, что вызывает значительную задержку на медленных ПК перед началом сжатия или извлечения. Этот метод называется растягиванием ключа и используется для затруднения перебора ключевой фразы. Текущие атаки на основе графического процессора и пользовательские аппаратные атаки ограничивают эффективность этого конкретного метода расширения ключа, поэтому по-прежнему важно выбрать надежный пароль. Формат 7z предоставляет возможность зашифровать имена файлов архива 7z.

Ограничения

Формат 7z не хранит разрешения файловой системы (например, UNIX разрешения владельца / группы или NTFS ACL ) и, следовательно, могут не подходить для целей резервного копирования / архивирования. Для решения этой проблемы в UNIX-подобных системах можно преобразовать данные в битовый поток tar перед сжатием с помощью 7z. Но стоит отметить, что GNU tar (распространенный во многих средах UNIX) также может сжиматься с алгоритмом LZMA изначально, без использования 7z, и что в этом случае предлагаемое расширение файла для архива - ".tar.lzma" ( или просто ".tlz"), а не ".tar.7z". С другой стороны, важно отметить, что tar не сохраняет кодировку файловой системы, а это означает, что сжатые с помощью tar имена файлов могут стать нечитаемыми при распаковке на другом компьютере. Также можно использовать LZMA2, запустив его с помощью инструмента xz. Последние версии GNU tar поддерживают переключатель -J, который запускает TAR через XZ. Расширение файла - «.tar.xz» или «.txz». Этот метод сжатия был принят во многих дистрибутивах для упаковки, таких как Arch, Debian (deb), Fedora (rpm) и Slackware.

Формат 7z не позволяет извлекать некоторые «битые файлы», то есть (например), если у одного есть первый сегмент серии файлов 7z, 7z не может дать начало файлов в архиве. - необходимо дождаться загрузки всех сегментов. В формате 7z также отсутствуют записи восстановления, что делает его уязвимым для ухудшения качества данных, если он не используется вместе с внешними решениями, такими как parchives, или в файловых системах с надежным Исправление ошибок. Для сравнения, в файлах zip также отсутствует функция восстановления.

См. Также
Ссылки
Дополнительная литература
  • Salomon, Дэвид (2007). Сжатие данных: полный справочник. Springer. п. 241. ISBN 978-1-84628-602-5.
Внешние ссылки
Последняя правка сделана 2021-07-19 05:35:23
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте