encyklopedia.space

ZIP

ZIP – popularny format archiwum i jednocześnie metoda kompresji danych, opracowana w 1993 roku przez firmę PKWARE, Inc. oraz jej założyciela Phila Katza. Format umożliwia łączenie wielu plików w jedną paczkę oraz zmniejszanie ich rozmiaru przy użyciu algorytmów kompresji, najczęściej DEFLATE. Dzięki otwartemu charakterowi standardu ZIP stał się jednym z najczęściej używanych formatów archiwizacji na świecie.

Historia

Idea kompresji grupowej sięga wczesnych lat 80. XX wieku, jednak pierwszy publicznie dostępny program PKZIP został wydany w 1993 roku. W kolejnych latach powstały wersje dla systemów Microsoft Windows, Linux oraz macOS. W 1995 roku wprowadzono obsługę szyfrowania (trzydziesto‑sześć‑bitowy algorytm), a w 1999 roku zdefiniowano format ZIP64, który zwiększył maksymalny rozmiar archiwum i liczbę plików.

Budowa i technologia

Plik ZIP składa się z szeregu rekordów:

  • lokalne nagłówki plików (lokalne rekordy) – zawierają informacje o nazwie pliku, metodzie kompresji i danych kompresowanych,
  • centralny katalog – lista wszystkich plików w archiwum wraz z metadanymi (rozmiar, data modyfikacji, suma kontrolna),
  • rekord końcowy (End of Central Directory – EOCD) – zakończenie archiwum, zawiera wskaźniki do centralnego katalogu.

Podstawowa metoda kompresji to DEFLATE, będąca połączeniem algorytmu LZ77 i kodowania Huffmana. W późniejszych wersjach dopuszczono także inne algorytmy, m.in. BZIP2, LZMA oraz PPMD.

Inne standardy i specyfikacje

Format ZIP został znormalizowany jako ISO/IEC 21320 – "Information technology – Zip file format". Standard opisuje zarówno klasyczną wersję, jak i rozszerzenia ZIP64 oraz szyfrowanie AES (Standard RFC 8221).

Zastosowania

ZIP jest używany w wielu dziedzinach, m.in.:

  • archiwizacja i backup danych – zarówno w Eksploratorze Windows, jak i w narzędziach 7‑Zip, WinRAR, PeaZip;
  • dystrybucja oprogramowania – instalatory Windows często są spakowane w plikach ZIP;
  • przenoszenie zestawów plików przez Internet – np. w Git czy npm (pakiety .tgz są konwertowane do ZIP przy publikacji);
  • kompresja zasobów w aplikacjach mobilnych – pliki APK (Android) oraz iOS .ipa są de facto archiwami ZIP.

Programy obsługujące ZIP

Na najważniejsze aplikacje, które potrafią tworzyć i rozpakowywać pliki ZIP, składają się:

  • PKZIP – oryginalny program firmy PKWARE;
  • WinZip – komercyjny menedżer archiwów dostępny na Windows i macOS;
  • 7‑Zip – otwarto‑źródłowy program obsługujący wiele formatów, w tym ZIP, z własną implementacją DEFLATE;
  • Wbudowane narzędzia systemowe – zip i unzip w Linux, Eksplorator Windows, Archive Utility w macOS.

Bezpieczeństwo

Format ZIP posiada kilka zagadnień bezpieczeństwa:

  • ZIP‑bomb – specjalnie skonstruowane archiwum, które po rozpakowaniu zajmuje bardzo dużą ilość pamięci i miejsca na dysku, co może prowadzić do odmowy usług (DoS);
  • szyfrowanie – tradycyjne szyfrowanie ZIP (trzydziesto‑sześć‑bitowe) jest uznawane za niewystarczająco bezpieczne. W nowszych wersjach stosuje się szyfrowanie AES‑256 zgodne ze specyfikacją RFC 8221;
  • możliwość path traversal – nieprawidłowo zweryfikowane nazwy plików (np. ../../etc/passwd) mogą prowadzić do nadpisania plików systemowych podczas rozpakowywania.

Ograniczenia

Chociaż ZIP jest bardzo wszechstronny, ma pewne ograniczenia:

  • maksymalny rozmiar pojedynczego pliku w klasycznym ZIP to 4 GB (w ZIP64 zwiększony do 16 EB);
  • format nie obsługuje natywnie wersjonowania plików (w przeciwieństwie do Git czy SVN);
  • kompresja DEFLATE jest mniej efektywna niż nowoczesne algorytmy (LZMA, Zstandard) przy niektórych typach danych.

Alternatywy i konkurencja

Wśród formatów konkurujących z ZIP znajdują się m.in.: RAR, 7z, tar + gzip, xz. Każdy z nich oferuje inne kompromisy między stopniem kompresji, szybkością oraz wsparciem platformowym.

Przyszłość

Rozwój formatu ZIP koncentruje się na:

  • poprawie bezpieczeństwa – wymóg szyfrowania AES‑256 jako domyślnego ustawienia;
  • wsparciu wielowątkowej kompresji – implementacje takie jak pbzip2 są integrowane z nowoczesnymi bibliotekami ZIP;
  • lepszej integracji z chmurą – usługi typu OneDrive oraz Google Drive używają formatu ZIP do eksportu danych.

Linki powiązane

Kompresja danych | Algorytm | PKWARE | Phil Katz | DEFLATE | ZIP64 | AES