Расширения имени файла | .zip , .zipx (более новые алгоритмы сжатия) |
---|---|
Тип Интернет-носителя | application / zip |
Uniform Type Identifier (UTI) | com.pkware.zip-archive |
Magic number |
|
Разработано | PKWARE, Inc. |
Первый выпуск | 14 февраля 1989 г.; 31 год назад (1989-02-14) |
Последний выпуск | 6.3.9. (15 июля 2020; 2 месяца назад (2020-07-15)) |
Тип формата | Данные сжатие |
Расширено до | JAR (EAR, RAR (Java), WAR ). Office Open XML (Microsoft). Соглашения об открытых упаковках. OpenDocument (ODF). XPI (расширения Mozilla) |
Стандарт | APPNOTE от PKWARE. ISO / IEC 21320-1: 2015 (подмножество формата файла ZIP 6.3.3) |
Открытый формат ? | Да |
ZIP - это формат файла архива, который поддерживает данные без потерь сжатие. ZIP-файл может содержать один или несколько файлов или каталогов, которые могли быть сжаты. Формат файла ZIP допускает несколько алгоритмов сжатия , хотя DEFLATE является наиболее распространенным. Этот формат был первоначально создан в 1989 году и впервые был реализован в утилите PKWARE, Inc. PKZIP как замена предыдущего формата сжатия ARC, разработанного Томом. Хендерсон. Формат ZIP затем быстро стал поддерживаться многими программными утилитами, кроме PKZIP. Microsoft включила встроенную поддержку ZIP (под названием «сжатые папки») в версии Microsoft Windows с 1998 года. Apple включила встроенную поддержку ZIP в Mac OS X 10.3 (через BOMArchiveHelper, теперь Archive Utility ) и позже. Большинство бесплатных операционных систем имеют встроенную поддержку ZIP аналогично Windows и Mac OS X.
ZIP-файлы обычно используют расширения файлов.zip или.ZIP и MIME тип носителя application / zip
. ZIP используется в качестве базового формата файла во многих программах, обычно под другим именем. При навигации по файловой системе через пользовательский интерфейс графические значки, представляющие файлы ZIP, часто отображаются в виде документа или другого объекта, на котором видна застежка-молния.
Формат файла.ZIP был разработан Филом Кацем из PKWARE и Гэри Конвеем из Infinity Design Concepts. Формат был создан после того, как Systems Enhancement Associates (SEA) подала иск против PKWARE, утверждая, что архивные продукты последней, названные PKARC, являются производными от системы архивирования SEA ARC. Название «застежка-молния» (что означает «двигаться с высокой скоростью») было предложено другом Каца, Робертом Махони. Они хотели дать понять, что их продукт будет быстрее, чем ARC и другие форматы сжатия того времени. Самая ранняя известная версия спецификации формата файла.ZIP была впервые опубликована как часть пакета PKZIP 0.9 в файле APPNOTE.TXT в 1989 году. Распространение формата файла zip в APPNOTE.TXT обеспечивает совместимость с файлом zip формат широко распространился в общедоступном Интернете в течение 1990-х.
PKWARE и Infinity Design Concepts выпустили совместный пресс-релиз 14 февраля 1989 года, выпустив файл формата.ZIP в общественное достояние .
Спецификация формата файла.ZIP имеет свой собственный номер версии, который не обязательно соответствует номерам версии для инструмента PKZIP, особенно с PKZIP 6 или новее. В разное время в PKWARE добавлялись предварительные функции, позволяющие продуктам PKZIP извлекать архивы с использованием расширенных функций, но продукты PKZIP, которые создают такие архивы, не будут доступны до следующего основного выпуска. Другие компании или организации поддерживают спецификации PKWARE в своем собственном темпе.
Спецификация формата файла.ZIP официально называется «APPNOTE -.ZIP File Format Specification» и публикуется на веб-сайте PKWARE.com с конца 1990-х годов. Несколько версий спецификации не были опубликованы. Спецификации некоторых функций, таких как сжатие BZIP2, спецификация надежного шифрования и другие, были опубликованы PKWARE через несколько лет после их создания. URL-адрес онлайн-спецификации менялся несколько раз на веб-сайте PKWARE.
Сводка основных достижений в различных версиях спецификации PKWARE:
WinZip, начиная с версии 12.1, использует расширение.zipx для ZIP файлы, использующие методы сжатия более новые, чем DEFLATE; в частности, методы BZip, LZMA, PPMd, Jpeg и Wavpack. Последние 2 применяются к соответствующим типам файлов, когда выбран «Лучший метод» сжатия.
В апреле 2010 года ISO / IEC JTC 1 инициировал голосование для определить, следует ли инициировать проект по созданию формата международного стандарта ISO / IEC, совместимого с ZIP. Предлагаемый проект под названием Document Packaging предусматривал ZIP-совместимый «минимальный сжатый архивный формат», подходящий для использования с рядом существующих стандартов, включая OpenDocument, Office Open XML и EPUB.
В 2015 году был опубликован ISO / IEC 21320-1 «Файл-контейнер документа - Часть 1: Ядро», в котором говорится, что «Файлы-контейнеры документов соответствуют файлам Zip». Это требует следующих основных ограничений формата файла ZIP:
.ZIP-файлы - это архивы, в которых хранится несколько файлов. ZIP позволяет сжимать содержащиеся файлы, используя множество различных методов, а также просто сохранять файл без сжатия. Каждый файл хранится отдельно, что позволяет сжимать разные файлы в одном архиве разными методами. Поскольку файлы в ZIP-архиве сжимаются по отдельности, их можно извлекать или добавлять новые без применения сжатия или распаковки ко всему архиву. Это контрастирует с форматом сжатых файлов tar, для которых такая обработка произвольного доступа не так легко возможна.
Каталог помещается в конец ZIP-файла. Это определяет, какие файлы находятся в ZIP-архиве, и определяет, где в ZIP-архиве находится этот файл. Это позволяет читателям ZIP загружать список файлов без чтения всего ZIP-архива. ZIP-архивы также могут содержать дополнительные данные, не относящиеся к ZIP-архиву. Это позволяет превратить ZIP-архив в самораспаковывающийся архив (приложение, которое распаковывает содержащиеся в нем данные), добавив программный код к ZIP-архиву и пометив файл как исполняемый. Хранение каталога в конце также позволяет скрыть заархивированный файл, добавив его к безобидному файлу, например к файлу изображения GIF.
Формат.ZIP использует 32-битный алгоритм CRC и включает две копии структуры каталогов архива для обеспечения большей защиты от потери данных.
ZIP-файл правильно идентифицируется по наличию конца записи центрального каталога, который расположен в конце структуры архива, что позволяет легко добавление новых файлов. Если конец записи центрального каталога указывает на непустой архив, имя каждого файла или каталога в архиве должно быть указано в записи центрального каталога вместе с другими метаданными о записи и смещением в ZIP-файле, указывая к фактическим входным данным. Это позволяет относительно быстро составлять список файлов архива, так как не нужно читать весь архив, чтобы увидеть список файлов. Записи в файле ZIP также включают эту информацию для избыточности в заголовок локального файла. Поскольку ZIP-файлы могут быть добавлены, допустимы только файлы, указанные в центральном каталоге в конце файла. Сканирование ZIP-файла на предмет локальных заголовков файлов недопустимо (за исключением случаев поврежденных архивов), поскольку центральный каталог может объявить, что некоторые файлы были удалены, а другие обновлены.
Например, мы можем начать с ZIP-файла, который содержит файлы A, B и C. Затем файл B удаляется, а файл C обновляется. Этого можно достичь, просто добавив новый файл C в конец исходного файла ZIP и добавив новый центральный каталог, в котором перечислены только файл A и новый файл C. Когда ZIP был впервые разработан, передача файлов с помощью гибких дисков была обычным явлением, однако запись на диски занимала очень много времени. Если у вас был большой zip-файл, возможно, охватывающий несколько дисков, и вам нужно было обновить только несколько файлов, а не читать и перезаписывать все файлы, было бы значительно быстрее просто прочитать старый центральный каталог и добавить новые файлы. затем добавьте обновленный центральный каталог.
Порядок записей файлов в центральном каталоге не обязательно должен совпадать с порядком записей файлов в архиве.
Каждая запись, хранящаяся в ZIP-архиве, представлена локальным заголовком файла с информацией о файле, такой как комментарий, размер файла и имя файла, за которыми следуют необязательные «дополнительные» поля данных, а затем возможно сжатые, возможно, зашифрованные данные файла. «Дополнительные» поля данных являются ключом к расширяемости формата ZIP. «Дополнительные» поля используются для поддержки формата ZIP64, WinZip-совместимого шифрования AES, атрибутов файлов и временных меток файлов NTFS или Unix с более высоким разрешением. Другие расширения возможны через поле «Дополнительно». По спецификации инструменты ZIP должны игнорировать дополнительные поля, которые они не распознают.
Формат ZIP использует особые 4-байтовые «подписи» для обозначения различных структур в файле. Каждая запись файла помечена определенной подписью. Конец записи центрального каталога обозначается ее конкретной подписью, и каждая запись в центральном каталоге начинается с 4-байтовой подписи заголовка центрального файла.
В спецификации ZIP нет маркера BOF или EOF. Обычно в ZIP-файле первым делом является запись ZIP, которую можно легко идентифицировать по сигнатуре локального заголовка файла. Однако это не обязательно так, поскольку это не требуется спецификацией ZIP - в частности, самораспаковывающийся архив начинается с заголовка исполняемого файла.
Инструменты, которые правильно читают ZIP-архивы, должны сканировать конец подписи записи центрального каталога, а затем, при необходимости, другие указанные записи центрального каталога. Они не должны сканировать записи из верхней части ZIP-файла, потому что (как упоминалось ранее в этом разделе) только центральный каталог указывает, где начинается фрагмент файла и что он не был удален. Сканирование может привести к ложным срабатываниям, так как формат не запрещает другим данным находиться между фрагментами, а также потокам данных файлов не содержать такие подписи. Однако инструменты, которые пытаются восстановить данные из поврежденных ZIP-архивов, скорее всего, будут сканировать архив на наличие подписей локальных заголовков файлов; это усложняется тем фактом, что сжатый размер фрагмента файла может быть сохранен после фрагмента файла, что затрудняет последовательную обработку.
Большинство подписей оканчиваются коротким целым числом 0x4b50, которое хранится в порядке little-endian. Рассматриваемая как строка ASCII, она читается как «PK», инициалы изобретателя Фила Каца. Таким образом, когда ZIP-файл просматривается в текстовом редакторе, первые два байта файла обычно являются «PK». (Самораспаковывающиеся ZIP-файлы для DOS, OS / 2 и Windows имеют EXE перед ZIP-файлом, поэтому начинайте с «MZ»; самораспаковывающимся ZIP-файлам для других операционных систем может также предшествовать исполняемый код для извлечения архива. содержимого на этой платформе.)
Спецификация.ZIP также поддерживает распространение архивов по нескольким файлам файловой системы. Первоначально предназначенная для хранения больших ZIP-файлов на нескольких гибких дисках, эта функция теперь используется для отправки ZIP-архивов частями по электронной почте, через другие транспортные средства или съемные носители.
Файловая система FAT DOS имеет разрешение метки времени всего две секунды; Записи файлов ZIP имитируют это. В результате встроенное разрешение временных меток файлов в ZIP-архиве составляет всего две секунды, хотя дополнительные поля могут использоваться для хранения более точных временных меток. Формат ZIP не имеет понятия часовой пояс, поэтому временные метки имеют смысл только в том случае, если известно, в каком часовом поясе они были созданы.
В сентябре 2007 года PKWARE выпустила новую версию ZIP. спецификация, предусматривающая хранение имен файлов с использованием UTF-8, наконец, добавление совместимости с Unicode в ZIP.
Все многобайтовые значения в заголовке сохраняются в обратном порядке байтов. Все поля длины считают длину в байтах.
Смещение | Байт | Описание |
---|---|---|
0 | 4 | Подпись заголовка локального файла = 0x04034b50 (читается как число с прямым порядком байтов) |
4 | 2 | Версия, необходимая для извлечения (минимум) |
6 | 2 | Битовый флаг общего назначения |
8 | 2 | Метод сжатия |
10 | 2 | Время последнего изменения файла |
12 | 2 | Дата последнего изменения файла |
14 | 4 | CRC-32 несжатых данных |
18 | 4 | Сжатое size |
22 | 4 | Несжатый размер |
26 | 2 | Длина имени файла (n) |
28 | 2 | Длина дополнительного поля (м) |
30 | n | Имя файла |
30 + n | m | Дополнительное поле |
Дополнительное поле содержит множество необязательные данные, такие как атрибуты ОС. Он разделен на блоки, каждый из которых имеет 16-битный идентификационный код и 16-битную длину.
За ним сразу следуют сжатые данные.
Если бит со смещением 3 (0x08) поля флагов общего назначения установлен, тогда CRC-32 и размеры файла неизвестны при записи заголовка. Поля в локальном заголовке заполняются нулями, а CRC-32 и размер добавляются в 12-байтовой структуре (необязательно с предшествующей 4-байтовой подписью) сразу после сжатых данных:
Смещение | Байт | Описание |
---|---|---|
0 | 0/4 | Дополнительная подпись дескриптора данных = 0x08074b50 |
0/4 | 4 | CRC-32 несжатых данных |
4/8 | 4 | Сжатый размер |
8/12 | 4 | Несжатый размер |
Элемент центрального каталога представляет собой развернутую форму локального заголовка:
Смещение | Байт | Описание |
---|---|---|
0 | 4 | Подпись заголовка файла центрального каталога = 0x02014b50 |
4 | 2 | Версия, созданная |
6 | 2 | Версия, необходимая для извлечения (минимум) |
8 | 2 | Битовый флаг общего назначения |
10 | 2 | Метод сжатия |
12 | 2 | Время последней модификации файла |
14 | 2 | Дата последней модификации файла |
16 | 4 | CRC-32 несжатых данных |
20 | 4 | Сжатый размер |
24 | 4 | Несжатый размер |
28 | 2 | Длина имени файла (n) |
30 | 2 | Длина дополнительного поля (м) |
32 | 2 | Файл c длина элемента (k) |
34 | 2 | Номер диска, с которого начинается файл |
36 | 2 | Внутренние атрибуты файла |
38 | 4 | Внешние атрибуты файла |
42 | 4 | Относительное смещение заголовка локального файла. Это количество байтов между началом первого диска, на котором находится файл, и началом заголовка локального файла. Это позволяет программному обеспечению, считывающему центральный каталог, определять положение файла внутри ZIP-файла. |
46 | n | Имя файла |
46 + n | m | Дополнительное поле |
46 + n + m | k | Комментарий файла |
После всего центрального записи каталога идут в конец записи центрального каталога (EOCD), который отмечает конец файла ZIP:
Offset | Bytes | Описание |
---|---|---|
0 | 4 | Конец подписи центрального каталога = 0x06054b50 |
4 | 2 | Номер этого диска |
6 | 2 | Диск, на котором начинается центральный каталог |
8 | 2 | Количество записей центрального каталога на этом диске |
10 | 2 | Общее количество записей центрального каталога |
12 | 4 | Размер центрального каталога (байты) |
16 | 4 | Смещение начала центрального каталога относительно начала архива |
20 | 2 | Длина комментария (n) |
22 | n | Комментарий |
Этот порядок позволяет создать ZIP-файл за один проход, но центральный каталог также помещается в конец файла, чтобы облегчить удаление файлов из архивов, состоящих из нескольких частей (например, «нескольких дискет»), как обсуждалось ранее.
Спецификация формата файла.ZIP документирует следующие методы сжатия: Store (без сжатия), Shrink (LZW), Reduce (уровни 1-4; RLE + вероятностный), Implode, Deflate, Deflate64, bzip2, LZMA, WavPack, PPMd и вариант LZ77, предоставляемый IBM z / OS Инструкция CMPSC. Чаще всего используется метод сжатия DEFLATE, который описан в IETF RFC 1951.
. Другие методы, упомянутые, но не задокументированные подробно в спецификации, включают: PKWARE DCL Implode (старый IBM TERSE), новый IBM TERSE, IBM LZ77 z Architecture (PFS) и вариант JPEG. Метод «Tokenize» был зарезервирован для третьей стороны, но поддержка так и не была добавлена.
PKWARE злоупотребляет словом Implode: DCL / TERSE Implode отличается от старого PKZIP Implode, предшественника Deflate. DCL Implode недокументирован частично из-за того, что его собственность принадлежит IBM, но Марк Адлер, тем не менее, предоставил декомпрессор под названием «blast» вместе с zlib.
ZIP поддерживает простую систему на основе пароля симметричного шифрования, обычно известную как ZipCrypto. Он задокументирован в спецификации ZIP и известен как серьезный изъян. В частности, он уязвим для атак с известным открытым текстом, которые в некоторых случаях усугубляются плохой реализацией генераторов случайных чисел.
Новые функции, включая новое сжатие и методы шифрования (например, AES ) были задокументированы в Спецификации формата файлов ZIP, начиная с версии 5.2. Открытый стандарт WinZip на основе AES («AE-x» в APPNOTE) также используется 7-Zip и Xceed, но некоторые поставщики используют другие форматы. PKWARE SecureZIP (SES, проприетарный) также поддерживает методы шифрования RC2, RC4, DES, Triple DES, шифрование и аутентификацию на основе цифрового сертификата (X.509 ) и шифрование заголовка архива. Однако он запатентован (см. § Противоречие с сильным шифрованием).
Имя файла encryption введено в Спецификацию формата файла.ZIP 6.2, которая шифрует метаданные, хранящиеся в части Центрального каталога архив, но разделы локального заголовка остаются незашифрованными. Соответствующий архиватор может фальсифицировать данные локального заголовка при использовании шифрования центрального каталога. Начиная с версии 6.2 спецификации, поля метода сжатия и сжатого размера в локальном заголовке еще не замаскированы.
Исходный формат.ZIP имел ограничение в 4 ГиБ (2 байта) на различные вещи (несжатый размер файла, сжатый размер файла и общий размер архива), а также ограничение в 65 535 (2) записей в ZIP-архиве. В версии 4.5 спецификации (которая не совпадает с v4.5 любого конкретного инструмента) PKWARE представила расширения формата "ZIP64", чтобы обойти эти ограничения, увеличивая пределы до 16 EiB (2 байта). По сути, он использует " обычная запись в центральном каталоге для файла, за которой следует необязательная запись в каталоге zip64 с полями большего размера.
Проводник в Windows XP не поддерживает ZIP64, но Проводник в Windows Vista и более поздних версиях делать. Аналогичным образом, некоторые библиотеки расширений поддерживают ZIP64, например DotNetZip, QuaZIP и IO :: Compress :: Zip в Perl. Встроенный zip-файл Python поддерживает его с версии 2.5 и по умолчанию с версии 3.4. Встроенный java.util.zip OpenJDK поддерживает ZIP64 начиная с версии Java 7. Android API Java поддерживает ZIP64 начиная с Android 6.0. Утилита архивирования Mac OS Sierra, в частности, не поддерживает ZIP64 и может создавать поврежденные архивы, когда потребуется ZIP64. Однако команда ditto, поставляемая с Mac OS, распакует файлы ZIP64. Более поздние версии Mac OS поставляются с инструментами командной строки info-zip zip и unzip, которые действительно поддерживают Zip64: для проверки выполните zip -v и найдите «ZIP64_SUPPORT».
Формат файла.ZIP позволяет размещать комментарий, содержащий до 65 535 (2-1) байтов данных, в конце файла после центральный каталог. Кроме того, поскольку центральный каталог определяет смещение каждого файла в архиве относительно начала, возможно, что первая запись файла начинается со смещения, отличного от нуля, хотя некоторые инструменты, например gzip, не будут обрабатывать архивные файлы, которые не начинаются с записи файла с нулевым смещением.
Это позволяет произвольным данным находиться в файле как до, так и после данных архива ZIP, а также для чтения архива приложением ZIP. Побочным эффектом этого является то, что можно создать файл, который является одновременно рабочим ZIP-архивом и другим форматом, при условии, что другой формат допускает произвольные данные в его конце, начале или середине. Самораспаковывающиеся архивы (SFX) в форме, поддерживаемой WinZip, используют это преимущество, поскольку они являются исполняемыми (.exe) файлами, которые соответствуют спецификации PKZIP AppNote.txt, и могут быть прочитаны совместимыми инструментами или библиотеками zip.
Это свойство формата.ZIP и формата JAR, который является вариантом ZIP, можно использовать для сокрытия несанкционированного содержимого (например, вредоносных классов Java) внутри, казалось бы, безобидного файла, например как изображение в формате GIF, загруженное в Интернет. Этот так называемый эксплойт GIFAR был продемонстрирован как эффективная атака на веб-приложения, такие как Facebook.
Минимальный размер файла.ZIP составляет 22 байта. Такой пустой zip-файл содержит только конец записи центрального каталога (EOCD):. [0x50,0x4B, 0x05,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
Максимальный размер как для файла архива, так и для отдельных файлов внутри него составляет 4294967295 байт (2-1 байт, или 4 ГиБ минус 1 байт).) для стандартного ZIP. Для ZIP64 максимальный размер составляет 18 446 744 073 709 551 615 байт (2-1 байт, или 16 EiB минус 1 байт).
. Формат файла.ZIP включает дополнительное поле средство внутри заголовков файлов, которое можно использовать для хранения дополнительных данных, не определенных существующими спецификациями ZIP, и которые позволяют совместимым архиваторам, не распознающим поля, безопасно пропускать их. Идентификаторы заголовков 0–31 зарезервированы для использования PKWARE. Остальные идентификаторы могут использоваться сторонними поставщиками для собственного использования.
Когда в 2003 году была выпущена общедоступная бета-версия WinZip 9.0, WinZip представил собственное шифрование AES-256 с использованием другого файла формат, а также документацию по новой спецификации. Сами стандарты шифрования не были проприетарными, но PKWARE не обновляла APPNOTE.TXT, чтобы включить в него спецификацию строгого шифрования (SES) с 2001 года, которая использовалась PKZIP версий 5.0 и 6.0. Технический консультант WinZip Кевин Кирни и менеджер по продукции StuffIt Мэтью Ковингтон обвинили PKWARE в удержании SES, но технический директор PKZIP Джим Петерсон утверждал, что шифрование на основе сертификатов все еще не завершено.
В другой спорный шаг, PKWARE подал заявку на патент на 16 июля 2003, описывающая способ для объединения ZIP и надежное шифрование, чтобы создать защищенный файл.
В конце концов, PKWARE и WinZip договорились поддерживать продукты друг друга. 21 января 2004 года PKWARE объявила о поддержке формата сжатия AES на основе WinZip. В более поздней версии бета-версии WinZip он мог поддерживать файлы ZIP на основе SES. PKWARE в конечном итоге выпустила для общественности версию 5.2 Спецификации формата файла.ZIP, которая документировала SES. Проект Free Software 7-Zip также поддерживает AES, но не SES в ZIP-файлах (как и его порт POSIX p7zip ).
При использовании шифрования AES в WinZip метод сжатия всегда устанавливается на 99, а фактический метод сжатия сохраняется в дополнительном поле данных AES. В отличие от этого, Strong Encryption Specification хранит метод сжатия в сегменте основного заголовка файла в Local Header и Central Directory, если только Central Directory Encryption не используется для маскировки / шифрования метаданных.
Доступно множество инструментов.ZIP и множество библиотек.ZIP для различных сред программирования; Используемые лицензии включают проприетарное и бесплатное программное обеспечение. WinZip, WinRAR, Info-ZIP, 7-Zip, PeaZip и B1 Free Archiver - хорошо известные инструменты.ZIP, доступные на различных платформах. Некоторые из этих инструментов имеют библиотечный или программный интерфейс.
Некоторые библиотеки разработки, лицензированные по соглашению с открытым исходным кодом: libzip, libarchive и Info-ZIP. Для Java: Java Platform, Standard Edition содержит пакет «java.util.zip» для обработки стандартных файлов.ZIP; библиотека Zip64File специально поддерживает файлы большого размера (более 4 ГБ) и обрабатывает файлы.ZIP с использованием произвольного доступа; и инструмент Apache Ant содержит более полную реализацию, выпущенную по лицензии Apache Software License.
. Реализации Info-ZIP формата.ZIP добавляют поддержку функций файловой системы Unix, например идентификаторы пользователей и групп, права доступа к файлам и поддержка символических ссылок. Реализация Apache Ant знает об этом до такой степени, что может создавать файлы с предопределенными разрешениями Unix. Реализации Info-ZIP также знают, как использовать возможности исправления ошибок, встроенные в формат сжатия.ZIP. Некоторые программы этого не делают и не работают с файлом, в котором есть ошибки.
Инструменты Info-ZIP для Windows также поддерживают разрешения NTFS файловой системы и будут пытаться преобразовать разрешения NTFS в разрешения Unix или наоборот при извлечении файлов. Это может привести к потенциально непреднамеренным комбинациям, например Файлы .exe создаются на томах NTFS с отказом в разрешении на выполнение.
Версии Microsoft Windows включают поддержку сжатия.ZIP в проводнике, так как пакет Microsoft Plus! был выпущен для Windows 98. Microsoft называет эту функцию «Сжатые папки». Не все функции.ZIP поддерживаются функцией сжатых папок Windows. Например, шифрование не поддерживается в Windows 10 Home edition, хотя может расшифровывать. Кодировка записей Unicode не поддерживается до Windows 7, в то время как разделенные и составные архивы не доступны для чтения или записи с помощью функции сжатых папок, а также не поддерживается шифрование AES.
Microsoft Office начал использовать zip формат архива в 2006 году для своих файлов Office Open XML.docx,.xlsx,.pptx и т. д., который стал форматом файлов по умолчанию с Microsoft Office 2007.
Существует множество других стандартов и форматов, в названии которых используется «zip». Например, zip отличается от gzip, а последний определен в IETF RFC (RFC 1952 ). И zip, и gzip в основном используют алгоритм DEFLATE для сжатия. Аналогичным образом, формат ZLIB (IETF RFC 1950 ) также использует алгоритм сжатия DEFLATE, но определяет разные заголовки для проверки ошибок и согласованности. Другие распространенные форматы с одинаковыми названиями и программы с разными собственными форматами включают 7-Zip, bzip2 и rzip.
Теоретическое максимальное сжатие коэффициент для необработанного потока DEFLATE составляет примерно 1032 к одному, но, используя формат ZIP непреднамеренным образом, можно создать ZIP-архивы с коэффициентами сжатия в миллиарды к одному. Эти zip-бомбы распаковываются до чрезвычайно больших размеров, что превышает возможности компьютера, на котором они распаковываются.
Format Specifications: