Jump to content

формат файла 7z
Расширение имени файла
.7z
Тип интернет-СМИ
приложение/x-7z-сжатое
Единый идентификатор типа (UTI) org.7-zip.7-zip-архив
Магическое число '7', 'z', 0xBC, 0xAF, 0x27, 0x1C
Ограничение размера 2 64 байты (примерно 18 эксабайт )
Разработано Igor Pavlov [1]
Первоначальный выпуск 1999 год ; 25 лет назад ( 1999 ) [2]
Тип формата Сжатие данных
Открытый формат ? Да: Меньшая стандартная общественная лицензия GNU / общественное достояние
Веб-сайт 7-молния .org

7z — это формат сжатых архивных файлов , который поддерживает несколько различных данных алгоритмов сжатия , шифрования и предварительной обработки . Формат 7z изначально появился как реализованный архиватором 7-Zip . Программа 7-Zip общедоступна на условиях GNU Lesser General Public License . LZMA SDK 4.62 был размещен в свободном доступе в декабре 2008 года. Последней стабильной версией 7-Zip и LZMA SDK является версия 24.05. [2]

Официальная неофициальная спецификация формата файла 7z распространяется вместе с исходным кодом 7-Zip с 2015 года. Спецификацию можно найти в текстовом формате в подкаталоге «doc» дистрибутива исходного кода. [3] Были и дополнительные сторонние попытки написать более конкретную документацию на основе выпущенного кода. [4]

Возможности и улучшения

[ редактировать ]

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

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

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

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

[ редактировать ]

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

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

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

[ редактировать ]

LZMA SDK поставляется с препроцессорами BCJ и BCJ2 , что позволяет на более поздних стадиях добиться большего сжатия: для процессоров x86 , ARM , PowerPC (PPC), IA-64 Itanium и ARM Thumb цели перехода «нормализуются». [5] перед сжатием путем изменения относительного положения на абсолютные значения. Для 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 19 (524288) раз, [6] что вызывает значительную задержку на медленных ПК перед началом сжатия или извлечения. Этот метод называется растяжением ключа и используется для того, чтобы перебора усложнить поиск парольной фразы методом . Современные атаки на основе графического процессора и специальное аппаратное обеспечение ограничивают эффективность этого конкретного метода растяжения ключей. [7] поэтому по-прежнему важно выбрать надежный пароль.Формат 7z предоставляет возможность зашифровать имена файлов архива 7z.

Ограничения

[ редактировать ]

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

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

См. также

[ редактировать ]
  1. ^ «Несколько вопросов Игорю Павлову» . Информационный бюллетень доктора Добба по сжатию данных. 30 апреля 2003 г. Архивировано из оригинала 28 октября 2008 г. Проверено 26 декабря 2009 г.
  2. ^ Перейти обратно: а б «История изменений 7-zip» . Архивировано из оригинала 27 февраля 2015 года . Проверено 10 июня 2010 г.
  3. ^ LZMA SDK, каталог «DOC», 7zFormat.txt
  4. ^ «Спецификация формата .7z — py7zr — библиотека архивов 7-zip» . py7zr.readthedocs.io .
  5. ^ Перейти обратно: а б Коллин, Лассе. "лзма_.лзма" . привязки liblzma . Архивировано из оригинала 8 февраля 2010 года . Проверено 3 января 2010 г. По сравнению с LZMA1, в LZMA2 добавлена ​​поддержка LZMA_SYNC_FLUSH, несжатые фрагменты (меньшее расширение при попытке сжатия несжимаемых данных), возможность изменения lc/lp/pb в середине кодирования и некоторые другие внутренние улучшения.
  6. ^ «Исходный код 7-zip» . Архивировано из оригинала 22 марта 2019 года . Проверено 23 марта 2018 г.
  7. ^ Колин Персиваль . сценарий. Архивировано 28 мая 2019 года в Wayback Machine .Как представлено в «Более надежный вывод ключей с помощью последовательных функций с жесткой памятью». Архивировано 14 апреля 2019 г. на Wayback Machine .представлено на BSDCan'09, май 2009 г.
  8. ^ «GNU tar 1.34: 8.1 Использование меньшего пространства за счет сжатия» . Архивировано из оригинала 2 апреля 2015 года . Проверено 17 марта 2015 г.

Дальнейшее чтение

[ редактировать ]
  • Саломон, Дэвид (2007). Сжатие данных: полный справочник . Спрингер. п. 241. ИСБН  978-1-84628-602-5 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 661054d0ce3e19a102c2e7c6b15a910c__1720653420
URL1:https://arc.ask3.ru/arc/aa/66/0c/661054d0ce3e19a102c2e7c6b15a910c.html
Заголовок, (Title) документа по адресу, URL1:
7z - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)