ZIP-tiedosto: häviötön pakkaus- ja arkistointiformaatti (DEFLATE)
Tutustu ZIP-tiedostoon: häviötön pakkaus- ja arkistointiformaatti, DEFLATE-standardi, käyttö ja edut tiedostokoon pienentämiseen ja arkistointiin.
ZIP-tiedostomuoto on suosittu häviötön tiedonpakkaus- ja arkistointiformaatti, jonka loi Phil Katz, PKWAREn perustaja. ZIP-tiedosto voi sisältää yhden tai useampia tiedostoja ja hakemistoja; yksittäiset tiedostot voidaan pakata tilan säästämiseksi tai tallentaa ilman pakkausta. Zip-arkistot tukevat useita pakkausalgoritmeja, mutta käytännössä DEFLATE on pitkään ollut yleisin ja laajimmin tuettu menetelmä.
Keskeiset ominaisuudet
- Häviötön pakkaus: alkuperäinen tiedosto voidaan palauttaa täysin identtisenä purkamisen jälkeen.
- Usean tiedoston arkisto: samaan .zip-tiedostoon voi yhdistää monta tiedostoa ja hakemistoa.
- Monipuoliset pakkausmenetelmät: "store" (ei pakkausta), DEFLATE ja joissain sovelluksissa BZIP2, LZMA ym., vaikka tuki vaihtelee.
- Keskeinen hakemisto: arkiston lopussa oleva central directory mahdollistaa nopeasti listata sisältö ilman koko arkiston purkamista.
- Laajennukset: ZIP64-laajennus mahdollistaa yli 4 GB tiedostot ja yli 65 535 merkinnän arkistot.
- Tuki monille käyttöjärjestelmille: sisäänrakennettu tuki Windowsissa ja macOS:ssa sekä laaja valikoima kolmannen osapuolen työkaluja (7‑Zip, WinZip, unzip, zip).
Rakenne lyhyesti
ZIP-tiedosto koostuu toistuvista local file header -lohkoista (jokaiselle tiedostolle oma otsikkonsa), varsinaisesta pakatusta datasta ja lopuksi central directory -rekisteristä sekä end of central directory -merkinnästä. Tämä rakenne mahdollistaa tiedostoluettelon lukemisen ilman kaikkien datalohkojen purkamista. Suuremmissa arkistoissa käytetään ZIP64-laajennusta, joka lisää kenttiä ja poistaa alkuperäisen formaatirajoitukset.
Pakkausalgoritmit
DEFLATE on yleisin ZIP-arkistojen pakkausalgoritmi; se yhdistää LZ77-tyyppistä toistuvuuden poistoa ja Huffman-koodauksen, ja sen määrittely löytyy RFC 1951 -dokumentista. Muita paketissa mahdollisesti käytettyjä menetelmiä ovat mm. store (ei pakkausta), Deflate64, BZIP2 ja LZMA, mutta niiden tuki ei ole yhtä laaja kaikissa purkuohjelmissa. Lisäksi kaupalliset ohjelmat voivat käyttää omaa laajennettua formaattia (.zipx), joka voi sisältää nykyaikaisempia menetelmiä.
Yhteensopivuus ja yleisiä tiedostopäätteitä
- Yleisin tiedostopääte on .zip.
- Monet muut formaattilajit perustuvat ZIP-rakenteeseen: esimerkiksi Java-arkistot (.jar), selaimen lisäosat (.xpi) sekä Microsoft Office Open XML -dokumentit (.docx, .xlsx, .pptx) ovat ZIP-arkistojen erikoistapauksia.
- Uusissa versioissa on tullut laajennuksia (esim. ZIP64 ja .zipx), joten arkiston luonti kannattaa tehdä yhteensopivuustavoitteen mukaan (vanhemmat työkalut eivät välttämättä tue kaikkia laajennuksia).
Turvallisuus ja riskit
- Heikko salaus: perinteinen ZipCrypto-salaus on heikko; vahvempi AES-pohjainen salaus on käytössä joissain työkaluissa, mutta sen toteutukset eivät ole aina yhteentoimivia.
- Zip slip -haavoittuvuus: arkiston purkaminen voi johtaa polkukatkon hyväksikäyttöön (path traversal), jos purkuohjelma ei tarkista tiedostopolkuja ennen kirjoitusta.
- Zip-bommit: tarkoitukselliset tiivistetyt tiedostot, jotka purkautuvat valtavan kokoisiksi (esim. moninkertaisesti repeytyvä sisältö), voivat kuluttaa järjestelmän resursseja ja aiheuttaa palvelunestotilanteita.
- Tarkista lähde: arkistoihin voi kätkeytyä haittaohjelmia; varmista lähde ja käytä virustarkistusta ennen epäilyttävien arkistojen avaamista.
Työkalut ja käytännön esimerkkejä
- Linux/macOS: yleisesti käytettyjä työkaluja ovat zip ja unzip. Esimerkki arkiston luomisesta:
zip -r arkisto.zip kansio/. Purkaminen:unzip arkisto.zip. - Windows: Resurssienhallinnassa on sisäänrakennettu tuki zip-tiedostoille; lisäksi 7‑Zip ja WinZip tarjoavat laajempia ominaisuuksia ja parempaa tukea eri pakkausmenetelmille.
- Monet ohjelmointikirjastot pystyvät käsittelemään ZIP-arkistoja (esim. Pythonin zipfile, Javan java.util.zip), mikä tekee formaatista suosikin sovelluskehityksessä.
Yhteenveto
ZIP on monipuolinen ja laajalti tuettu häviötön arkistomuoto, joka sopii sekä yksinkertaiseen tiedostojen pakkaamiseen että monimutkaisempaan arkistointiin. DEFLATE on käytännössä standardina käytetty pakkausmenetelmä, mutta formaatti on laajennettavissa ja sisältää useita laajennuksia (kuten ZIP64). Kun käsittelet zip-arkistoja, huomioi yhteensopivuus, tietoturva (salaus ja path traversal) sekä mahdolliset rajoitukset suurten tiedostojen kanssa.
Käyttö
ZIP-tiedostot käyttävät yleensä tiedostopäätteitä ".zip" tai ".ZIP" ja MIME-mediatyyppiä application/zip. Jotkin ohjelmistot käyttävät ZIP-tiedostomuotoa kääreenä suurelle määrälle pieniä kohteita tietyssä rakenteessa. Yleensä tällöin käytetään eri tiedostopäätettä.
Etsiä