ZIP (формат файла)
Расширение имени файла | .zip .zipx .z01 .zx01 |
---|---|
Тип интернет-СМИ | application/zip application/x-zip-compressed |
Единый идентификатор типа (UTI) | com.pkware.zip-архив |
Магическое число |
|
Разработано | ПКВЭР, Инк. |
Первоначальный выпуск | 14 февраля 1989 г |
Последний выпуск | 6.3.10 1 ноября 2022 г |
Тип формата | Сжатие данных |
Распространено на |
|
Стандартный | ПРИЛОЖЕНИЕ от PKWARE ISO/IEC 21320-1:2015 (подмножество формата файла ZIP 6.3.3) |
Открытый формат ? | Да |
ZIP — это формат архивных файлов , который поддерживает сжатие данных без потерь . ZIP-файл может содержать один или несколько файлов или каталогов, которые могли быть сжаты. Формат файла ZIP поддерживает несколько алгоритмов сжатия , но DEFLATE наиболее распространенным является . Этот формат был первоначально создан в 1989 году и впервые реализован в PKWARE, Inc. компании PKZIP утилите [2] в качестве замены предыдущего формата сжатия ARC Тома Хендерсона. Затем формат ZIP был быстро поддержан многими программными утилитами, кроме PKZIP. Microsoft включила встроенную поддержку ZIP (под названием «сжатые папки») в версии Microsoft Windows с 1998 года через надстройку «Plus! 98» для Windows 98. Встроенная поддержка была добавлена с 2000 года в Windows ME. [ нужна ссылка ] Apple включила встроенную поддержку ZIP в Mac OS X 10.3 (через BOMArchiveHelper, теперь Archive Utility ) и более поздних версий. Большинство бесплатных операционных систем имеют встроенную поддержку ZIP, аналогично Windows и macOS.
ZIP-файлы обычно используют расширения файлов .zip или .ZIP и MIME тип носителя application/zip
. [1] ZIP используется в качестве базового формата во многих программах, обычно под другим именем. При навигации по файловой системе через пользовательский интерфейс графические значки, представляющие ZIP-файлы, часто отображаются в виде документа или другого объекта с заметной застежкой-молнией .
История
[ редактировать ]The Формат файла .ZIP был разработан Филом Кацем из PKWARE и Гэри Конвеем из Infinity Design Concepts. Формат был создан после того, как компания Systems Enhancement Associates (SEA) подала иск против PKWARE, утверждая, что продукты архивирования последней, получившие название PKARC, были производными от ARC SEA. системы архивирования [3] Название «зип» (что означает «движение на высокой скорости») было предложено другом Каца Робертом Махони. [4] Они хотели дать понять, что их продукт будет быстрее, чем ARC и другие форматы сжатия того времени. [4] Самая ранняя известная версия спецификации формата файла .ZIP была впервые опубликована как часть пакета PKZIP 0.9 под файлом APPNOTE.TXT в 1989 году. [ нужна ссылка ] Благодаря распространению формата zip-файла в APPNOTE.TXT совместимость с форматом zip-файла широко распространилась в общедоступном Интернете в 1990-е годы. [5]
PKWARE и Infinity Design Concepts выпустили совместный пресс-релиз 14 февраля 1989 г., выпустив .ZIP Формат файла в общественное достояние . [6] [7] [8] [9] [10]
История версий
[ редактировать ]Спецификация формата файла .ZIP имеет собственный номер версии, который не обязательно соответствует номерам версий инструмента PKZIP, особенно для PKZIP 6 или более поздней версии. В разное время PKWARE добавлял предварительные функции, которые позволяют продуктам PKZIP извлекать архивы с использованием расширенных функций, но продукты PKZIP, создающие такие архивы, не станут доступны до следующего основного выпуска. Другие компании и организации поддерживают спецификации PKWARE в своем темпе.
Спецификация формата файла .ZIP официально называется «APPNOTE — Спецификация формата файла .ZIP» и публикуется на веб-сайте PKWARE.com с конца 1990-х годов. [11] Некоторые версии спецификации не были опубликованы. Спецификации некоторых функций, таких как сжатие BZIP2 , спецификация сильного шифрования и другие, были опубликованы PKWARE через несколько лет после их создания. URL-адрес онлайн-спецификации на веб-сайте PKWARE несколько раз менялся.
Краткое изложение ключевых достижений в различных версиях спецификации PKWARE:
- 2.0: (1993) [1] Записи файлов можно сжимать с помощью DEFLATE и использовать традиционное шифрование PKWARE (ZipCrypto).
- 2.1: (1996) Сжатие Deflate64
- 4.5: (2001) [12] Документированный 64-битный формат zip.
- 4.6: (2001) Сжатие BZIP2 (не публиковалось в Интернете до публикации APPNOTE 5.2)
- 5.0: (2002) SES: DES , Triple DES , RC2 , RC4 поддерживаются для шифрования (не публикуется в Интернете до публикации APPNOTE 5.2)
- 5.2: (2003) [13] [14] Поддержка шифрования AES для SES (определенного в APPNOTE 5.1, которое не было опубликовано в Интернете) и AES из WinZip («AE-x»); исправленная версия RC2-64, поддерживающая шифрование SES.
- 6.1: (2004) [15] Документированное хранение сертификатов.
- 6.2.0: (2004) [16] Документированное шифрование центрального каталога.
- 6.3.0: (2006) [17] Документированное хранилище имен файлов в формате Unicode ( UTF-8 ). Расширен список поддерживаемых алгоритмов сжатия ( LZMA , PPMd+ ), алгоритмов шифрования ( Blowfish , Twofish ) и хешей.
- 6.3.1: (2007) [18] Исправлены стандартные значения хеш-функции для SHA-256/384/512.
- 6.3.2: (2007) [19] Документированный метод сжатия 97 ( WavPack ).
- 6.3.3: (2012) [20] Изменено форматирование документа, чтобы облегчить ссылку на Замечания по применению PKWARE из других стандартов с использованием таких методов, как пояснительный отчет по ссылкам JTC 1 (RER) в соответствии с указаниями JTC 1/SC 34 N 1621.
- 6.3.4: (2014) [21] Обновляет адрес офиса PKWARE, Inc.
- 6.3.5: (2018) [22] Документированы методы сжатия 16, 96 и 99, эпоха и точность меток времени DOS, добавлены дополнительные поля для ключей и дешифрования, а также опечатки и пояснения.
- 6.3.6: (2019) [23] Исправлена опечатка.
- 6.3.7: (2020) [24] Добавлен метод сжатия Zstandard с идентификатором 20.
- 6.3.8: (2020) [25] Идентификатор метода сжатия Zstandard перемещен с 20 на 93, прежний объявлен устаревшим. Документированные идентификаторы метода 94 и 95 ( MP3 и XZ соответственно).
- 6.3.9: (2020) [26] Исправлена опечатка в описании выравнивания потока данных.
- 6.3.10: (2022) [27] Добавлено несколько значений атрибутов z/OS для ПРИЛОЖЕНИЯ B. Добавлено несколько дополнительных сопоставлений дополнительных полей сторонних производителей.
WinZip , начиная с версии 12.1, использует расширение .zipx для ZIP-файлов, использующих более новые методы сжатия, чем DEFLATE; в частности, методы BZip, LZMA, PPMd, Jpeg и Wavpack. Последние два применяются к соответствующим типам файлов, когда выбрано сжатие «Лучший метод». [28] [29]
Стандартизация
[ редактировать ]В апреле 2010 года ОТК 1 ISO/IEC инициировал голосование, чтобы определить, следует ли инициировать проект по созданию формата международного стандарта ISO/IEC, совместимого с ZIP. [30] Предлагаемый проект, озаглавленный «Упаковка документов », предусматривал ZIP-совместимый «минимальный сжатый формат архива», подходящий для использования с рядом существующих стандартов, включая OpenDocument , Office Open XML и EPUB .
В 2015 году был опубликован стандарт ISO / IEC 21320-1 «Файл-контейнер документов. Часть 1: Ядро», в котором говорится, что «Файлы-контейнеры документов соответствуют Zip-файлам». Для формата файла ZIP требуются следующие основные ограничения: [31]
- Файлы в ZIP-архивах можно хранить только в несжатом виде или с использованием сжатия «выкачивание» (т.е. метод сжатия может содержать значение «0» — сохраняется или «8» — выкачивается).
- Функции шифрования запрещены.
- Функции цифровой подписи (от SES) запрещены.
- Функции «исправленных данных» (из PKPatchMaker) запрещены.
- Архивы не могут охватывать несколько томов или быть сегментированными.
Дизайн
[ редактировать ]Файлы .ZIP — это архивы, в которых хранится несколько файлов. ZIP позволяет сжимать содержащиеся файлы множеством различных методов, а также просто хранить файл без его сжатия. Каждый файл хранится отдельно, что позволяет сжимать разные файлы в одном архиве разными методами. Поскольку файлы в ZIP-архиве сжимаются индивидуально, их можно извлечь или добавить новые, не применяя сжатие или распаковку ко всему архиву. Это контрастирует с форматом сжатых файлов tar , для которых такая обработка с произвольным доступом невозможна.
Каталог размещается в конце ZIP-файла. Это определяет, какие файлы находятся в ZIP-архиве, и определяет, где в ZIP-архиве находится этот файл. Это позволяет программам чтения ZIP загружать список файлов, не читая весь ZIP-архив. ZIP-архивы также могут включать дополнительные данные, не связанные с ZIP-архивом. Это позволяет превратить ZIP-архив в самораспаковывающийся архив (приложение, которое распаковывает содержащиеся в нем данные) путем добавления программного кода к ZIP-архиву и пометки файла как исполняемого. Хранение каталога в конце также позволяет скрыть заархивированный файл, добавив его к безобидному файлу, например файлу изображения GIF.
The Формат .ZIP использует 32-битный алгоритм CRC и включает две копии метаданных каждой записи для обеспечения большей защиты от потери данных. Алгоритм CRC-32 был предложен Дэвидом Швадерером, и его можно найти в его книге «Руководство программиста C по NetBIOS», опубликованной Howard W. Sams & Co. Inc. [32]
Структура
[ редактировать ]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, которое хранится в порядке с прямым порядком байтов . В виде строки ASCII это читается как «PK» — инициалы изобретателя Фила Каца. Таким образом, когда ZIP-файл просматривается в текстовом редакторе, первые два байта файла обычно имеют формат «PK». (Самораспаковывающиеся ZIP-файлы DOS, OS/2 и Windows имеют EXE- файл перед ZIP, поэтому начинаются с «MZ»; самораспаковывающимся ZIP-файлам для других операционных систем аналогичным образом может предшествовать исполняемый код для извлечения содержимого архива на этой платформе.)
The Спецификация .ZIP также поддерживает распространение архивов по нескольким файлам файловой системы. Первоначально предназначенная для хранения больших ZIP-файлов на нескольких дискетах , эта функция теперь используется для отправки ZIP-архивов частями по электронной почте, другим средствам транспорта или съемным носителям.
Файловая система FAT в DOS имеет разрешение временной метки всего две секунды; Записи ZIP-файлов имитируют это. В результате встроенное разрешение временных меток файлов в ZIP-архиве составляет всего две секунды, хотя для хранения более точных временных меток можно использовать дополнительные поля. В формате ZIP нет понятия часового пояса , поэтому временные метки имеют смысл только в том случае, если известно, в каком часовом поясе они были созданы.
В сентябре 2006 года PKWARE выпустила пересмотренную версию спецификации ZIP, предусматривающую хранение имен файлов с использованием UTF-8 , наконец добавив в ZIP совместимость с Unicode. [17]
Заголовки файлов
[ редактировать ]Все многобайтовые значения в заголовке хранятся в порядке байтов с прямым порядком байтов. Все поля длины подсчитывают длину в байтах.
Заголовок локального файла
[ редактировать ]Компенсировать | Байты | Описание [33] |
---|---|---|
0 | 4 | Подпись заголовка локального файла = 0x04034b50 (PK♥♦ или «PK\3\4») |
4 | 2 | Версия, необходимая для извлечения (минимум) |
6 | 2 | Битовый флаг общего назначения |
8 | 2 | Метод сжатия; например, none = 0, DEFLATE = 8 (или «\0x08\0x00») |
10 | 2 | Время последней модификации файла |
12 | 2 | Дата последней модификации файла |
14 | 4 | CRC-32 несжатых данных |
18 | 4 | Сжатый размер (или 0xffffffff для ZIP64) |
22 | 4 | Несжатый размер (или 0xffffffff для ZIP64) |
26 | 2 | Длина имени файла ( n ) |
28 | 2 | Дополнительная длина поля ( м ) |
30 | н | Имя файла |
30+ н | м | Дополнительное поле |
Дополнительное поле содержит различные дополнительные данные, такие как атрибуты, специфичные для ОС. Он разделен на записи, каждая из которых имеет как минимум 16-битную подпись и 16-битную длину. Например, запись дополнительного поля локального файла ZIP64 имеет сигнатуру 0x0001 и длину 16 байт (или более), так что за ней могут следовать два 64-битных значения (несжатый и сжатый размеры). Другое распространенное расширение локального файла — 0x5455 (или «UT»), которое содержит 32-битные временные метки UTC UNIX.
Сразу за этим следуют сжатые данные.
Дескриптор данных
[ редактировать ]Если бит по смещению 3 (0x08) поля флагов общего назначения установлен, то CRC-32 и размеры файлов неизвестны при записи заголовка. Если архив в формате Zip64, поля размера в сжатом и несжатом виде имеют длину 8 байт вместо 4 байт (см. раздел 4.3.9.2). [34] ). Эквивалентные поля в локальном заголовке (или в дополнительном поле расширенной информации Zip64 в случае архивов в формате Zip64) заполняются нулями, а CRC-32 и размер добавляются в 12-байтовой структуре (необязательно перед которой ставится 4-байтовая подпись) сразу после сжатых данных:
Компенсировать | Байты | Описание [33] |
---|---|---|
0 | 0 или 4 | Дополнительная подпись дескриптора данных = 0x08074b50 |
0 или 4 | 4 | CRC-32 несжатых данных |
4 или 8 | 4 или 8 | Сжатый размер |
8 или 12 или 16 | 4 или 8 | Несжатый размер |
Заголовок файла центрального каталога (CDFH)
[ редактировать ]Запись заголовка файла центрального каталога представляет собой расширенную форму локального заголовка:
Компенсировать | Байты | Описание [33] |
---|---|---|
0 | 4 | Подпись заголовка файла центрального каталога = 0x02014b50 |
4 | 2 | Версия сделана |
6 | 2 | Версия, необходимая для извлечения (минимум) |
8 | 2 | Битовый флаг общего назначения |
10 | 2 | Метод сжатия |
12 | 2 | Время последней модификации файла |
14 | 2 | Дата последней модификации файла |
16 | 4 | CRC-32 несжатых данных |
20 | 4 | Сжатый размер (или 0xffffffff для ZIP64) |
24 | 4 | Несжатый размер (или 0xffffffff для ZIP64) |
28 | 2 | Длина имени файла ( n ) |
30 | 2 | Дополнительная длина поля ( м ) |
32 | 2 | Длина комментария к файлу ( k ) |
34 | 2 | Номер диска, на котором начинается файл (или 0xffff для ZIP64) |
36 | 2 | Внутренние атрибуты файла |
38 | 4 | Атрибуты внешних файлов |
42 | 4 | Относительное смещение заголовка локального файла (или 0xffffffff для ZIP64). Это количество байтов между началом первого диска, на котором находится файл, и началом локального заголовка файла. Это позволяет программному обеспечению, читающему центральный каталог, определять положение файла внутри ZIP-файла. |
46 | н | Имя файла |
46+ н | м | Дополнительное поле |
46+ н + м | к | Комментарий к файлу |
Конец записи центрального каталога (EOCD)
[ редактировать ]После всех записей центрального каталога следует запись конца центрального каталога (EOCD), которая отмечает конец ZIP-файла:
Компенсировать | Байты | Описание [33] |
---|---|---|
0 | 4 | Конец подписи центрального каталога = 0x06054b50. |
4 | 2 | Номер этого диска (или 0xffff для ZIP64) |
6 | 2 | Диск, на котором начинается центральный каталог (или 0xffff для ZIP64). |
8 | 2 | Количество записей центрального каталога на этом диске (или 0xffff для ZIP64) |
10 | 2 | Общее количество записей центрального каталога (или 0xffff для ZIP64) |
12 | 4 | Размер центрального каталога (в байтах) (или 0xffffffff для ZIP64) |
16 | 4 | Смещение начала центрального каталога относительно начала архива (или 0xffffffff для ZIP64) |
20 | 2 | Длина комментария ( n ) |
22 | н | Комментарий |
Такой порядок позволяет создать ZIP-файл за один проход, но центральный каталог также размещается в конце файла, чтобы облегчить удаление файлов из архивов, состоящих из нескольких частей (например, «многодискетных») , поскольку ранее обсуждалось.
Методы сжатия
[ редактировать ]Спецификация формата файла .ZIP документирует следующие методы сжатия: Store (без сжатия), Shrink ( LZW ), уменьшить (уровни 1–4; LZ77 + вероятностный), Implode, Deflate, Deflate64, bzip2 , LZMA , WavPack , PPMd и вариант LZ77, предоставляемый инструкцией IBM z/OS CMPSC. [35] [22] Наиболее часто используемый метод сжатия — DEFLATE , описанный в IETF. РФК 1951 .
Другие методы, упомянутые, но не описанные подробно в спецификации, включают: PKWARE DCL Implode (старый IBM TERSE), новый IBM TERSE , IBM LZ77 z Architecture (PFS) и вариант JPEG. Метод «Tokenize» был зарезервирован для третьей стороны, но поддержка так и не была добавлена. [22]
Слово Implode в PKWARE слишком часто используется: DCL/TERSE Implode отличается от старого PKZIP Implode, предшественника Deflate. DCL Implode частично недокументирован из-за того, что он является собственностью IBM, но Марк Адлер, тем не менее, предоставил декомпрессор под названием «blast» вместе с zlib. [36]
Шифрование
[ редактировать ]ZIP поддерживает простую пароля на основе систему симметричного шифрования , обычно известную как ZipCrypto. Он задокументирован в спецификации ZIP и известен своими серьезными недостатками. В частности, он уязвим для атак с использованием известного открытого текста , которые в некоторых случаях усугубляются плохой реализацией генераторов случайных чисел . [5] Компьютеры под управлением собственной ОС Microsoft Windows без сторонних архиваторов могут открывать, но не создавать ZIP-файлы, зашифрованные с помощью ZipCrypto, но не могут извлекать содержимое файлов, использующих другое шифрование. [37]
Новые функции, включая новые методы сжатия и шифрования (например, AES ), документируются в спецификации формата файла ZIP начиная с версии 5.2. ( Открытый стандарт на основе AES , разработанный WinZip «AE-x» в APPNOTE), также используется 7-Zip и Xceed , но некоторые поставщики используют другие форматы. [38] PKWARE SecureZIP (SES, собственный) также поддерживает методы шифрования RC2, RC4, DES, Triple DES, шифрование и аутентификацию на основе цифровых сертификатов ( X.509 ), а также шифрование заголовка архива. Однако он запатентован (см . § Серьезные споры о шифровании ). [39]
имени файла Шифрование представлено в спецификации формата файла .ZIP 6.2, которая шифрует метаданные, хранящиеся в части архива центрального каталога, но разделы локального заголовка остаются незашифрованными. Соответствующий требованиям архиватор может фальсифицировать данные локального заголовка при использовании шифрования центрального каталога. Начиная с версии 6.2 спецификации, поля «Метод сжатия» и «Размер сжатого изображения» в локальном заголовке еще не замаскированы.
ZIP64
[ редактировать ]Оригинал Формат .ZIP имел размер 4 ГБ (2 32 байт) ограничение на различные вещи (несжатый размер файла, сжатый размер файла и общий размер архива), а также ограничение в 65 535 (2 байта). 16 -1) записи в ZIP-архиве. В версии 4.5 спецификации (которая отличается от версии 4.5 какого-либо конкретного инструмента) PKWARE представила расширения формата ZIP64, чтобы обойти эти ограничения, увеличив ограничения до 16 ЭБ (2 64 байты). По сути, он использует «обычную» запись центрального каталога для файла, за которой следует необязательная запись каталога «zip64», которая имеет поля большего размера. [40]
Формат заголовка локального файла (LOC) и заголовка файла центрального каталога (CDFH) одинаков в ZIP и ZIP64. Однако ZIP64 определяет дополнительное поле, которое может быть добавлено к этим записям по усмотрению компрессора, целью которого является хранение значений, которые не помещаются в классические записи LOC или CDFH. Чтобы указать, что фактические значения хранятся в дополнительных полях ZIP64, им присваиваются значения 0xFFFF или 0xFFFFFFFF в соответствующей записи LOC или CDFH. Если одна запись не помещается в классическую запись LOC или CDFH, в дополнительное поле ZIP64 необходимо переместить только эту запись. Остальные записи могут остаться в классической записи. Таким образом, не все записи, показанные в следующей таблице, могут храниться в дополнительном поле ZIP64. Однако, если они появляются, их порядок должен быть таким, как показано в таблице.
Компенсировать | Байты | Описание [33] |
---|---|---|
0 | 2 | Идентификатор заголовка 0x0001 |
2 | 2 | Размер дополнительного фрагмента поля (8, 16, 24 или 28) |
4 | 8 | Размер исходного несжатого файла |
12 | 8 | Размер сжатых данных |
20 | 8 | Смещение записи локального заголовка |
28 | 4 | Номер диска, на котором запускается этот файл |
С другой стороны, формат EOCD для ZIP64 немного отличается от обычной версии ZIP. [33]
Компенсировать | Байты | Описание [33] |
---|---|---|
0 | 4 | Конец подписи центрального каталога = 0x06064b50. |
4 | 8 | Размер EOCD64 минус 12 |
12 | 2 | Версия сделана |
14 | 2 | Версия, необходимая для извлечения (минимум) |
16 | 4 | Номер этого диска |
20 | 4 | Диск, на котором начинается центральный каталог |
24 | 8 | Количество записей центрального каталога на этом диске |
32 | 8 | Общее количество записей центрального каталога |
40 | 8 | Размер центрального каталога (байты) |
48 | 8 | Смещение начала центрального каталога относительно начала архива |
56 | н | Комментарий (до размера EOCD64) |
Это также не обязательно последняя запись в файле. Далее следует локатор конца центрального каталога (дополнительные 20 байт в конце).
Проводник в Windows XP не поддерживает ZIP64, но Проводник в Windows Vista и более поздних версиях поддерживает. [ нужна ссылка ] Аналогично, некоторые библиотеки расширений поддерживают ZIP64, например DotNetZip, QuaZIP. [41] и IO::Compress::Zip в Perl. Python поддерживает его с версии 2.5 и по умолчанию использует его с версии 3.4. Встроенный zip-файл [42] Java Встроенный в OpenJDK java.util.zip поддерживает ZIP64, начиная с версии 7 . [43] Android Java API поддерживает ZIP64, начиная с Android 6.0. [44] Утилита архивирования Mac OS Sierra, в частности, не поддерживает ZIP64 и может создавать поврежденные архивы, когда требуется ZIP64. [45] Однако команда ditto, поставляемая с Mac OS, распакует файлы ZIP64. [46] Более поздние [ когда? ] версии Mac OS поставляются с инструментами командной строки zip и unzip, которые поддерживают Zip64: для проверки запустите zip -v и найдите «ZIP64_SUPPORT».
Сочетание с другими форматами файлов
[ редактировать ]The Формат файла .ZIP допускает комментарий, содержащий до 65 535 (2 16 −1) байты данных, которые должны находиться в конце файла после центрального каталога. [33] Кроме того, поскольку центральный каталог определяет смещение каждого файла в архиве относительно начала, первая запись файла может начинаться со смещением, отличным от нуля, хотя некоторые инструменты, например gzip , не будут обрабатывать архив. файлы, которые не начинаются с записи файла с нулевым смещением.
Это позволяет произвольным данным появляться в файле как до, так и после данных ZIP-архива, а также позволяет архиву читаться ZIP-приложением. Побочным эффектом этого является то, что можно создать файл, который является одновременно рабочим ZIP-архивом и другим форматом, при условии, что другой формат допускает произвольные данные в конце, начале или середине. Самораспаковывающиеся архивы (SFX) формы, поддерживаемой WinZip, используют это преимущество, поскольку они являются исполняемыми ( .exe ), которые соответствуют спецификации PKZIP AppNote.txt и могут быть прочитаны совместимыми zip-инструментами или библиотеками.
Это свойство Формат .ZIP и формат JAR , который является вариантом ZIP, можно использовать для сокрытия мошеннического содержимого (например, вредоносных классов Java) внутри, казалось бы, безобидного файла, такого как изображение GIF, загруженное в Интернет. Этот так называемый эксплойт GIFAR был продемонстрирован как эффективная атака на веб-приложения, такие как Facebook. [47]
Пределы
[ редактировать ]Минимальный размер Размер файла .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]
Максимальный размер как архивного файла, так и отдельных файлов внутри него составляет 4 294 967 295 байт (2 32 −1 байт или 4 ГБ минус 1 байт) для стандартного ZIP. Для ZIP64 максимальный размер составляет 18 446 744 073 709 551 615 байт (2 64 −1 байт или 16 ЭБ минус 1 байт). [48]
Открытые расширения
[ редактировать ]Оптимизированный для поиска (SOZip) профиль
[ редактировать ]Профиль ZIP-файла, оптимизированного для поиска (SOZip). [49] было предложено для формата ZIP. Такой файл содержит один или несколько файлов, сжатых Deflate, которые организованы и снабжены аннотациями таким образом, что программа чтения, поддерживающая SOZip, может выполнять очень быстрый произвольный доступ (поиск) внутри сжатого файла. SOZip позволяет получить доступ к большим сжатым файлам непосредственно из ZIP-файла без предварительного распаковывания. Он сочетает в себе использование очистки блоков ZLib, выпускаемой через регулярные промежутки времени, со скрытым индексным файлом, отображающим смещения несжатого файла на смещения в сжатом потоке. Программы чтения ZIP, не знающие об этом расширении, могут нормально читать файл с поддержкой SOZip и игнорировать расширенные функции, поддерживающие эффективный поиск.
Собственные расширения
[ редактировать ]Дополнительное поле
[ редактировать ]Формат файла .ZIP включает в себя дополнительные поля в заголовках файлов, которые можно использовать для хранения дополнительных данных, не определенных существующими спецификациями ZIP, и которые позволяют совместимым архиваторам, которые не распознают поля, безопасно пропускать их. Идентификаторы заголовков 0–31 зарезервированы для использования PKWARE. Остальные идентификаторы могут использоваться сторонними поставщиками для использования в собственных целях.
Серьезные споры о шифровании
[ редактировать ]Когда в 2003 году была выпущена общедоступная бета-версия WinZip 9.0, WinZip представила собственное шифрование AES-256 с использованием другого формата файлов, а также документацию по новой спецификации. [50] Сами стандарты шифрования не были проприетарными , но PKWARE не обновляла APPNOTE.TXT для включения спецификации сильного шифрования (SES) с 2001 года, которая использовалась PKZIP версий 5.0 и 6.0. Технический консультант WinZip Кевин Кирни и менеджер по продуктам StuffIt Мэтью Ковингтон обвинили PKWARE в удержании SES, но технический директор PKZIP Джим Петерсон заявил, что шифрование на основе сертификатов все еще не завершено.
Еще один спорный шаг: 16 июля 2003 года PKWare подала заявку на патент, описывающий метод сочетания ZIP и надежного шифрования для создания защищенного файла. [51]
В конце концов PKWARE и WinZip согласились поддерживать продукты друг друга. 21 января 2004 г. PKWARE объявила о поддержке формата сжатия AES на основе WinZip. [52] В более поздней бета-версии WinZip появилась возможность поддерживать ZIP-файлы на основе SES. [53] В конечном итоге PKWARE выпустила для публики версию 5.2 спецификации формата файла .ZIP, в которой документирован SES. Проект бесплатного программного обеспечения также поддерживает AES, но 7-Zip не SES в ZIP-файлах (как и его POSIX- порт p7zip ).
При использовании шифрования AES в WinZip для метода сжатия всегда установлено значение 99, а фактический метод сжатия сохраняется в дополнительном поле данных AES. [54] Напротив, спецификация строгого шифрования сохраняет метод сжатия в сегменте основного заголовка файла локального заголовка и центрального каталога, если только шифрование центрального каталога не используется для маскировки/шифрования метаданных.
Выполнение
[ редактировать ]Существует множество Доступны инструменты .ZIP и множество .ZIP- библиотеки для различных сред программирования; Используемые лицензии включают проприетарное и бесплатное программное обеспечение . WinZip , WinRAR , Info-ZIP , ZipGenius , 7-Zip , PeaZip и B1 Free Archiver хорошо известны. Инструменты .ZIP , доступные на различных платформах. Некоторые из этих инструментов имеют библиотечные или программные интерфейсы.
Некоторые библиотеки разработки, лицензированные по соглашению об открытом исходном коде, — это libzip , libarchive и Info-ZIP . Для Java: Платформа Java, 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 в Explorer начиная с Microsoft Plus! пакет был выпущен для Windows 98. Microsoft называет эту функцию «Сжатые папки». Не все Функции .ZIP поддерживаются функцией сжатых папок Windows. Например, шифрование не поддерживается в версии Windows 10 Home. [55] хотя расшифровать можно. Кодировка записей Unicode не поддерживается до Windows 7 , а разделенные и составные архивы не доступны для чтения или записи с помощью функции «Сжатые папки», а также не поддерживается шифрование AES. [56] Поддержка Windows .zip возникла в результате приобретения VisualZip, написанного Дэйвом Пламмером . [57] [58] [59]
Формат OpenDocument (ODF) начал использовать формат zip-архива в 2005 году. ODF — это открытый формат для офисных документов всех типов, это формат файлов по умолчанию, используемый в Collabora Online , LibreOffice и других. [60] Microsoft Office начал использовать формат zip-архива в 2006 году для своих файлов Office Open XML .docx, .xlsx, .pptx и т. д., который стал форматом файлов по умолчанию в Microsoft Office 2007 .
Проблемы интернационализации
[ редактировать ]Версии формата до 6.3.0 не поддерживали сохранение имен файлов в Юникоде . [61] Согласно стандарту, [61] имена файлов должны храниться в кодировке CP437 , стандартной для IBM PC , [61] но на практике архиваторы DOS использовали установленную в системе кодировку символов . Встроенный архиватор Windows до 11 также использовал кодировку DOS, соответствующую выбранному языку системы, для обратной совместимости при создании архивов. Впоследствии стандарт был обновлен и включил два варианта хранения имен файлов в Юникоде: 1) когда установлен 11-й бит в поле битового флага общего назначения, имя файла в поле «Имя файла» заголовка должно рассматриваться как UTF-8 вместо однобайтовой кодировки, и 2) было добавлено дополнительное поле Unicode Path для хранения имени файла в кодировке UTF-8. [61] Некоторые версии архиваторов на платформе Windows в прошлом также использовали кодировку ANSI. Таким образом, для корректного извлечения файлов с именами, содержащими неанглийские символы, необходимо: [62]
- Проверьте наличие дополнительного поля Unicode Path и, если оно существует, используйте имя файла из него в кодировке UTF-8.
- Проверьте наличие флага 11 в поле «Битовый флаг общего назначения», и если он установлен, считайте кодировку имени файла в поле «Имя файла» UTF-8.
- Если поле «ОС упаковки» содержит значение 11 (NTFS, Windows), а значение поля «Версия упаковщика» больше или равно 20, кодировку имени файла в поле «Имя файла» считать ANSI. (Windows) кодировка, соответствующая языковому стандарту системы, если его можно определить; в противном случае используйте CP437.
- Если поле «ОС упаковки» содержит значение 0 (FAT, DOS), а значение поля «Версия упаковщика» находится в диапазоне от 25 до 40 включительно, то кодировку имени файла в поле «Имя файла» локального заголовка следует считать ANSI. (Windows), а в поле «Имя файла» центрального заголовка указать кодировку OEM (DOS), соответствующую языковому стандарту системы, если его можно определить; в противном случае используйте CP437.
- В остальных случаях, если поле «Упаковка ОС» содержит значение 0 (FAT, DOS), 6 (HPFS, OS/2) или 11 (NTFS, Windows), учитывайте кодировку имени файла в поле «Имя файла». кодировка OEM (DOS), соответствующая языковому стандарту системы, если его можно определить; в противном случае используйте CP437.
- Во всех остальных случаях кодировку имени файла в поле «Имя файла» следует считать системной кодировкой операционной системы, на которой работает распаковщик.
Некоторые реализации zip-распаковщиков не реализовали этот алгоритм или реализовали его лишь частично, в результате при просмотре содержимого архива или его распаковке пользователи видели вместо букв алфавита хаотичный набор символов, известный как «моджибаке». национальный алфавит. В 2016 году эта проблема была решена в менеджере файлов и архивов Far2l для Linux, BSD и Mac. [63] В 2024 году было добавлено аналогичное решение. [64] к версии 7zip, используемой в дистрибутиве Debian и его производных, а также к версии unzip, используемой в дистрибутиве Ubuntu и его производных. [62]
Наследие
[ редактировать ]Существует множество других стандартов и форматов, в названии которых используется слово «zip». Например, zip отличается от gzip , а последний определен в IETF. РФК 1952 . И zip, и gzip в основном используют алгоритм DEFLATE для сжатия. Аналогично, формат ZLIB (IETF RFC 1950 ) также использует алгоритм сжатия DEFLATE, но определяет другие заголовки для проверки ошибок и согласованности. Другие распространенные форматы с похожими названиями и программы с разными собственными форматами включают 7-Zip , bzip2 и rzip .
Обеспокоенность
[ редактировать ]Теоретический максимальный коэффициент сжатия для необработанного потока DEFLATE составляет примерно 1032 к одному, [65] но, используя формат ZIP непреднамеренно, можно создать ZIP-архивы со степенью сжатия миллиарды к одному. Эти zip-бомбы распаковываются до чрезвычайно больших размеров, что превышает возможности компьютера, на котором они распаковываются. [66]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б с Регистрация нового MIME Content-Type/Subtype — application/zip , IANA , 20 июля 1993 г. , получено 5 января 2012 г.
- ^ «Филипп Кац, пионер компьютерного программного обеспечения, 37 лет» . «Нью-Йорк Таймс» . 1 мая 2000 года . Проверено 14 июня 2009 г.
- ^ Мюррей, Мэтт; Танненбаум, Джеффри А. (15 августа 1997 г.). «Взлет и падение звезды программного обеспечения; Фил Кац любил код и спиртное» . The Wall Street Journal (онлайн-изд.). Архивировано из оригинала 4 марта 2016 г. Альтернативный URL Обновлено 19 июня 2000 г.
- ^ Перейти обратно: а б «Библиотека документальных фильмов BBS» . www.bbsdocumentary.com . Проверено 25 сентября 2020 г.
- ^ Перейти обратно: а б Останься, Майкл. «ZIP-атаки с уменьшенным известным открытым текстом» (PDF) . Math.ucr.edu . Архивировано из оригинала (PDF) 28 октября 2017 года . Проверено 9 сентября 2017 г.
- ^ Брайан Ливингстон (8 сентября 2003 г.), PKZip Must Open Up , получено 5 января 2012 г. Формат
ZIP-файла свободно передается в общественное достояние и не может быть востребован ни юридически, ни морально каким-либо физическим лицом, организацией или компанией.
- ^ Откуда вообще взялись ZIP-файлы? , Infinity Design Concepts, Inc. , получено 5 января 2012 г.
- ^ Пресс-релиз , 1989 г. , дата обращения 5 января 2012 г.
- ^ Наш основатель — Фил Кац , PKWARE, архивировано из оригинала 1 октября 2010 г. , получено 5 января 2012 г.
- ^ Гарет Хортон; Роб Вейр; Алекс Браун (2 ноября 2010 г.), sc34-wg1 , получено 5 января 2012 г.
- ^ Примечание по применению .ZIP , получено 20 июля 2012 г.
- ^ Файл: APPNOTE.TXT — .ZIP Спецификация формата файла Версия: 4.5 Пересмотрено: 01.11.2001 , 3 декабря 2001 г., заархивировано из оригинала 3 декабря 2001 г. , получено 21 апреля 2012 г.
- ^ APPNOTE.TXT — Спецификация формата файла .ZIP, версия: 5.2 — Уведомление об изменении , 16 июля 2003 г. , получено 5 января 2012 г.
- ^ Файл: APPNOTE.TXT — .ZIP Спецификация формата файла Версия: 5.2 — Уведомление об изменении — Редакция: 02.06.2003 , 2 июля 2003 г., заархивировано из оригинала 2 июля 2003 г. , получено 21 апреля 2012 г.
- ^ Файл: APPNOTE — Спецификация формата файла .ZIP. Версия: 6.1.0 — Уведомление об изменении — исправлено: 20 января 2004 г. , 19 августа 2004 г., заархивировано из оригинала 19 августа 2004 г. , получено 21 апреля 2012 г.
- ^ APPNOTE.TXT — Спецификация формата файла .ZIP, версия: 6.2.0 — Уведомление об изменении , 26 апреля 2004 г. , получено 5 января 2012 г.
- ^ Перейти обратно: а б APPNOTE.TXT — спецификация формата файла .ZIP, версия: 6.3.0 , 29 сентября 2006 г. , получено 5 января 2012 г.
- ^ APPNOTE.TXT — спецификация формата файла .ZIP, версия: 6.3.1 , 11 апреля 2007 г. , получено 25 июня 2018 г.
- ^ APPNOTE.TXT — Спецификация формата файла .ZIP Версия: 6.3.2 , 28 сентября 2007 г. , получено 25 июня 2018 г.
- ^ APPNOTE.TXT — Спецификация формата файла .ZIP Версия: 6.3.3 , 1 сентября 2012 г. , получено 25 июня 2018 г.
- ^ APPNOTE.TXT — Спецификация формата файла .ZIP Версия: 6.3.4 , 1 октября 2014 г. , получено 25 июня 2018 г.
- ^ Перейти обратно: а б с APPNOTE.TXT — Спецификация формата файла .ZIP Версия: 6.3.5 , 20 декабря 2018 г. , получено 3 января 2019 г.
- ^ APPNOTE.TXT — спецификация формата файла .ZIP Версия: 6.3.6 , 26 апреля 2019 г. , получено 3 января 2019 г.
- ^ APPNOTE.TXT — Спецификация формата файла .ZIP Версия: 6.3.7 , 1 июня 2020 г. , получено 6 июня 2020 г.
- ^ APPNOTE.TXT — Спецификация формата файла .ZIP Версия: 6.3.8 , 15 июня 2020 г. , получено 7 июля 2020 г.
- ^ APPNOTE.TXT — Спецификация формата файла .ZIP Версия: 6.3.9 , 15 июля 2020 г. , получено 8 августа 2020 г.
- ^ APPNOTE.TXT — Спецификация формата файла .ZIP Версия: 6.3.10 , 1 ноября 2022 г. , получено 20 ноября 2022 г.
- ^ «Спецификация дополнительных методов сжатия» . ВинЗип . Мэнсфилд, Коннектикут : WinZip Computing, SL, 19 мая 2009 г. Проверено 24 мая 2009 г.
- ^ «Что такое файл Zipx?» . Винзип: База знаний . Мэнсфилд, Коннектикут : WinZip Computing, SL, 13 августа 2010 г. Проверено 17 августа 2010 г.
- ^ «ISO/IEC JTC 1/SC 34. Языки описания и обработки документов» (PDF) . 12 апреля 2010 г. Архивировано из оригинала (PDF) 12 мая 2014 г. . Проверено 10 мая 2014 г.
- ^ «ISO/IEC 21320-1:2015 Файл-контейнер документов. Часть 1: Ядро» . ИТТФ. 2015.
- ^ Электронный журнал (1 января 2023 г.). «Формат файла .ZIP» . Neperos.com .
- ^ Перейти обратно: а б с д и ж г час «Файл: APPNOTE.TXT — Спецификация формата файла .ZIP: Версия: 6.3.4» (TXT) . Pkware.com . Проверено 9 сентября 2017 г.
- ^ «Файл: APPNOTE.TXT — спецификация формата файла .ZIP» . ПКВЭР Инк . Проверено 21 февраля 2022 г.
- ^ Адлер, Марк. «Как связаны zlib, gzip и zip? Что у них общего и чем они отличаются?» . Проверено 27 ноября 2018 г.
- ^ «Часто задаваемые вопросы о zlib» . злиб .
PKWare DCL использует совершенно другой формат сжатых данных, чем PKZIP и zlib. Однако вы можете поискать возможное решение вашей проблемы в каталоге contrib/blast zlib.
( вклад/внести ) - ^ Сандип (15 сентября 2021 г.). «Как защитить паролем ZIP-файл» . Технические новости сегодня .
- ^ «Информация о шифровании AES: спецификация шифрования AE-1 и AE-2» . Winzip.com . Проверено 9 сентября 2017 г.
- ^ «APPNOTE — PKZIP/SecureZIP — Сайт поддержки PKWARE» . Pkware.com . Проверено 9 сентября 2017 г.
- ^ «Файл: APPNOTE.TXT — Спецификация формата файла .ZIP: Версия: 6.3.4» (TXT) . Pkware.cachefly.net . Проверено 9 сентября 2017 г.
- ^ «Изменения QuaZIP» . 22 января 2014 года . Проверено 25 января 2014 г.
- ^ «Усовершенствование Python: используйтеallowZip64=True по умолчанию (3.4)» . Проверено 6 мая 2014 г.
- ^ Шен, Сюэмин (17 апреля 2009 г.). «ZIP64, формат > Zip-файлов 4G, теперь поддерживается» . Блог Сюэмин Шэня . Сан Микросистемс . Проверено 27 сентября 2010 г.
- ^ «Вход — Аккаунты Google» . code.google.com . Проверено 9 сентября 2017 г.
- ^ «Ошибка: неверная подпись заголовка файла центрального каталога при распаковке больших файлов, заархивированных Mac OS · Проблема № 69 · thejoshwolfe/yauzl» . Гитхаб .
- ^ «Извлеките большой zip-файл (50 ГБ) в Mac OS X» . Проверено 17 декабря 2018 г.
- ^ Макмиллан, Роберт (август 2008 г.). «Фотография, которая может украсть ваши учетные данные в Интернете» . Infoworld.com . Проверено 9 сентября 2017 г.
- ^ «ZipArchive: формат Zip64: превышение ограничений размеров файлов и количества файлов и сегментов» . Artpol-software.com . Проверено 9 сентября 2017 г.
- ^ Руо, Эвен (OSGeo). «Оптимизированный для поиска ZIP-профиль (SOZip)» (уценка) . github.com . Проверено 11 января 2023 г.
- ^ «WinZip — информация о шифровании AES» . Winzip.com . Проверено 9 сентября 2017 г.
- ^ Макмиллан, Роберт (25 июля 2003 г.). «PKWare подает заявку на патент на формат файлов .zip» . InfoWorld.com . Архивировано из оригинала 10 августа 2003 года . Проверено 16 июня 2008 г.
- ^ «Производители программного обеспечения исправляют Zip tiff» . Новости.com . Проверено 9 сентября 2017 г.
- ^ Джон Лейден. «Компрометация шифрования Zip-файлов решена» . Thereregister.co.uk . Проверено 9 сентября 2017 г.
- ^ «Информация о шифровании AES: спецификация шифрования AE-1 и AE-2» . Winzip.com . Проверено 9 сентября 2017 г.
- ^ Махам Мухтар (август 2017 г.). «2 способа исправить опцию «Зашифровать содержимое для защиты данных», выделенную серым цветом в Windows 10» . iTechtics .
EFS доступна для всех выпусков Windows 10, кроме Windows 10 Home.
- ^ «Почему поддержка сжатых папок Windows (Zip-папок) застряла на рубеже веков?» . 15 мая 2018 г.
- ^ Кристофер Харпер (20 апреля 2024 г.). «Добавление поддержки ZIP-файлов в Windows 30 лет назад чуть не привело к увольнению создателя диспетчера задач» . Аппаратное обеспечение Тома . Проверено 6 мая 2024 г.
- ^ Дэйв Пламмер (8 января 2021 г.). «06.Секретная история ZIP-папок Windows» . Ютуб . Проверено 6 мая 2024 г.
- ^ Дэйв Пламмер (17 апреля 2024 г.). «Как создание ZIPFolders для Windows чуть не привело меня к уволению из Microsoft!» . Ютуб . Проверено 6 мая 2024 г.
- ^ Холл, Джим (15 августа 2022 г.). «Как структурированы файлы ODT» . opensource.com . Проверено 9 июля 2023 г.
- ^ Перейти обратно: а б с д ПКВЭР (15 июля 2020 г.). «APPNOTE.TXT — спецификация формата файла .ZIP» . ПКПОРЕ .
- ^ Перейти обратно: а б "ubuntu/+source/unzip - [нет описания]" . git.launchpad.net .
- ^ «ошибка обработки архивов с неанглийскими символами в именах заархивированных файлов/папок · Проблема № 114 · elfmz/far2l» . Гитхаб . Проверено 23 мая 2024 г.
- ^ «Используйте системный языковой стандарт для выбора кодовой страницы для устаревших zip-архивов (!8) · Запросы на слияние · Debian / 7zip · GitLab» . ГитЛаб . 22 мая 2024 г. Проверено 23 мая 2024 г.
- ^ «Технические подробности zlib» . Проверено 10 июля 2019 г.
- ^ Смит, Эрни (10 июля 2019 г.). «Самая умная «zip-бомба», когда-либо созданная, взрывает файл размером 46 МБ до 4,5 петабайт» . Материнская плата . Вице Медиа . Проверено 10 июля 2019 г.
Внешние ссылки
[ редактировать ]- Примечание по применению .ZIP. Архивировано 17 июля 2017 г. на целевой странице Wayback Machine для текущего и исторического файла .ZIP PKWARE.
- ISO/IEC 21320-1:2015 — Файл-контейнер документов. Часть 1: Ядро
- Zip-файлы: история, объяснение и реализация
- Сжать, уменьшить и взорвать: устаревшие методы сжатия Zip
- APPNOTE.TXT Зеркало
- Структура файла PKZip. Характеристики формата, графические таблицы.