7z: различия между версиями
[отпатрулированная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
Oleg4280 (обсуждение | вклад) {{Перевести|en|7z}} {{Compu-file-format-stub}} |
Dr.wsisw (обсуждение | вклад) Переведено с английской версии. Метка: визуальный редактор отключён |
||
Строка 13:
}}
'''7z'''
Спецификация формата файла 7z распространяется с исходным кодом 7-Zip. Спецификацию можно найти в текстовом формате в подкаталоге 'doc' дистрибутива исходного кода.
==Особенности и улучшения==
Формат 7z обеспечивает следующие основные функции:
* Открытая модульная архитектура, которая позволяет использовать любой метод сжатия, преобразования или шифрования.
* Высокие коэффициенты сжатия (в зависимости от используемого метода сжатия)
* AES- 256 шифрование .
* Поддержка больших файлов (примерно до 16 exbibytes , или 2 <sup>64</sup> байта).
* [https://en.wikipedia.org/wiki/Unicode]Имена файлов Unicode .
* Поддержка сплошного сжатия , при котором несколько файлов одинакового типа сжимаются в одном потоке, чтобы использовать объединенную избыточность, присущую аналогичным файлам.
* Сжатие и шифрование заголовков архива .
* Поддержка архивов, состоящих из нескольких частей: например, xxx.7z.001, xxx.7z.002, ... (см. Пункты контекстного меню « ''Разделить файл ...»,'' чтобы создать их, и « ''Объединить файлы ...»,'' чтобы повторно собрать архив из набор многокомпонентных файлов компонентов)
* Поддержка пользовательских библиотек плагинов кодеков.
Открытая архитектура формата позволяет добавлять в стандарт дополнительные будущие методы сжатия.
==Методы сжатия==
В настоящее время определены следующие методы сжатия:
* LZMA - вариант алгоритма , использующий словарь объёмом до 4 ГБ. За этапом LZ следует энтропийное кодирование с использованием кодера дальности на основе цепей Маркова и двоичного кода.
* LZMA2 - модифицированная версия LZMA, обесп[https://en.wikipedia.org/wiki/Range_encoding] - это сжатый [https://en.wikipedia.org/wiki/Binary_tree] - это сжатый ечивающая лучшую поддержку многопоточности и меньшее расширение несжимаемых данных.
* Bzip2 - стандартный алгоритм преобразования Берроуза-Уилера . Bzip2 использует два обратимых преобразования; BWT, затем перемещает дальше с кодированием Хаффмана для уменьшения символов (фактический элемент сжатия).
* PPMd - PPMdH Дмитрия Шкарина 2002 года (PPMII / cPPMII) с небольшими изменениями: PPMII - улучшенная версия алгоритма сжатия PPM 1984 года (прогнозирование путем частичного сопоставления).
* DEFLATE - Стандартный алгоритм, основанный на кодировании LZ77 32 кБ и кодировании Хаффмана . Deflate встречается в нескольких форматах файлов, включая ZIP , gzip , PNG и PDF . 7-Zip содержит кодер DEFLATE с нуля.
Набор инструментов повторного сжатия, называемый AdvanceCOMP, содержит копию кодера DEFLATE из реализации 7-Zip; Эти утилиты можно использовать для дальнейшего сжатия размера существующих файлов gzip , ZIP , PNG или MNG .
==Фильтры предварительной обработки==
LZMA SDK поставляется с включенными препроцессорами BCJ и BCJ2 , так что на более поздних этапах может достигаться большее сжатие: для процессоров x86 , ARM , PowerPC (PPC), IA-64 Itanium и ARM Thumb цели перехода «нормализованы» до сжатия путем изменения относительного положения в абсолютные значения. Для x86 это означает, что ближние переходы, вызовы и условные переходы (но не короткие переходы и условные переходы).
* 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 <sup>18</sup> (262144) раз, что вызывает значительную задержку на низкопроизводительных ПК перед началом сжатия или извлечения. Этот метод называется растягиванием клавиш и используется для более сложного поиска парольной фразы. Текущие атаки на основе графического процессора и пользовательские аппаратные средства ограничивают эффективность этого конкретного метода растяжения ключа. поэтому все еще важно выбрать надежный пароль. Формат 7z позволяет шифровать имена файлов архива 7z.
==Форматы==
Формат 7z не хранит разрешения файловой системы (например, разрешения владельца / группы UNIX или списки ACL NTFS ) и, следовательно, может не подходить для целей резервного копирования / архивирования. Обходной путь в UNIX-подобных системах для этого необходимо преобразовать данные в поток битов tar перед сжатием в 7z. Но стоит отметить, что GNU tar (распространенный во многих средах UNIX) также может сжимать с помощью алгоритма LZMA без использования 7z, и что в этом случае предложенный. Расширение файла для архива - ".tar.lzma" (или просто ".tlz"), а не ".tar.7z". С другой стороны, важно отметить, что tar не сохраняет кодировку файловой системы, что означает, что сжатые tar-файлы имена файлов могут стать нечитаемыми, если они распакованы на другом компьютере. Также можно использовать LZMA2, запустив его через инструмент xz . Последние версии GNU tar поддерживают <code>-J</code>коммутатор, который запускает TAR через XZ. Расширение файла: «.tar.xz» или «.txz». Этот метод сжатия был принят во многих дистрибутивах для упаковки, таких как Arch, Debian (deb), Fedora (rpm) и Slackware.
Формат 7z не позволяет извлекать некоторые «испорченные файлы» - например, если у вас есть первый сегмент серии файлов 7z, 7z не может дать начало файлам внутри архива - он должен ждать, пока все Сегменты загружены. В формате 7z также отсутствуют записи о восстановлении, что делает его уязвимым для деградации данных, если только он не используется совместно с внешними решениями, такими как архивы , или внутри файловых систем с надежным исправлением ошибок . Для сравнения, в zip- файлах также отсутствует функция восстановления.
==Ссылки==
[www.7-zip.org]
<nowiki>[[Категория:Архиваторы]]</nowiki>
<nowiki>[[Категория:Архиваторы и компрессоры]]</nowiki>
<nowiki>[[Категория:Сжатие данных]]</nowiki>{{примечания}}
{{Архиваторы}}
|