Расширение имени файла | .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' дистрибутива исходного кода.
Формат 7z предоставляет следующие основные возможности:
открытая архитектура формата позволяет в будущем добавлять к стандарту дополнительные методы сжатия.
В настоящее время определены следующие методы сжатия:
Набор инструментов повторного сжатия под названием AdvanceCOMP содержит копию кодировщика DEFLATE из реализации 7-Zip; эти утилиты часто можно использовать для дальнейшего сжатия существующих файлов gzip, ZIP, PNG или MNG.
LZMA SDK поставляется с BCJ и включенными препроцессорами, чтобы на более поздних этапах можно было добиться большего сжатия: Для x86, ARM, PowerPC (PPC), IA-64 Itanium и ARM Thumb, цели перехода "нормализованы" перед сжатием путем изменения относительного положения на абсолютные значения. Для x86 это означает, что ближние переходы, вызовы и условные переходы (но не короткие переходы и условные переходы) преобразуются из нотации стиля машинного языка «переход на 1655 байт назад» в нормированную нотацию стиля «переход к адресу 5554»; все переходы к 5554, возможно, к общей подпрограмме, таким образом, кодируются одинаково, что делает их более сжимаемыми.
Подобная технология предварительной обработки исполняемых файлов включена в другое программное обеспечение; компрессор 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 также отсутствует функция восстановления.