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 –
zipiunzipw 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