7z
Расширение .7z[2]
MIME-тип application/x-7z-compressed[3]
Сигнатура '7', 'z', 0xBC, 0xAF, 0x27, 0x1C
Разработчик Павлов, Игорь Викторович[d]
Опубликован 1999[1]
Тип формата Сжатие данных
Открытый формат? Да: GNU Lesser General Public License
Сайт 7-zip.org/7z.html (англ.)

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

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

Особенности и улучшения

[править | править код]

Формат 7z обеспечивает следующие основные функции:

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

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

[править | править код]

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

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

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

[править | править код]

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

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

Шифрование

[править | править код]

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

Форматы

[править | править код]

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

Формат 7z не позволяет извлекать некоторые битые файлы. Например, если у вас есть первый сегмент серии файлов 7z, то 7z не может дать начало файлам в архиве, так как он должен ждать, пока все сегменты загрузятся. В формате 7z также отсутствуют записи для восстановления, что делает его уязвимым для деградации данных, если он не используется в сочетании с внешними решениями, такими как Parchive[англ.], или в файловых системах с надёжным исправлением ошибок. Для сравнения, в zip-файлах также отсутствует функция восстановления, в то время как в формате rar она есть.

Примечания

[править | править код]

Ссылки

[править | править код]

7-zip.org/7z.html — официальный сайт 7z