Raaka DEFLATE (.deflate)
IETF StandardiDEFLATE on tietojenkäsittelyhistorian kaikkialla läsnä olevin häviötön tietojen pakkausalgoritmi, joka on pyörittänyt ZIP-arkistoja, GZIP-virtoja, PNG-kuvia ja HTTP-verkkopakkausta yli kolmen vuosikymmenen ajan.
Muunna tiedostot muodosta GZIP muotoon DEFLATE
Ilmainen selaimen sisäinen GZIP - DEFLATE-muunnin. Muunna tiedostoja välittömästi laitteellasi.
Tarkastele ja metatiedot
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat DEFLATE-tiedostot tarkistamalla tiedoston alun binäärisarjan:
Tavutason otsikon allekirjoitus (Magic Bytes)
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat DEFLATE-tiedostot tarkistamalla tiedoston alun binäärisarjan:
HEX-ALLEKIRJOITUS (OFFSET 0):
78 9C / 78 01 / 78 DAASCII-ESITYSTAPA: xœ / x. / xÚ
Standardointi: IETF RFC 1951 / RFC 1950 (zlib)
Tekniset tiedot
| Säiliöarkkitehtuuri | Raw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum |
| Pakkaus | LZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding |
| Tavujärjestys (Endianness) | Little-Endian bit-packing order |
| Väriavaruudet | N/A (Data Compression Stream) |
| Kanavat ja rakenne | Raw binary or text data stream |
| Suurimmat mitat | Unbounded stream length |
| Läpinäkyvyys | 100% bit-exact lossless data reproduction |
| Suoratoisto ja progressiivinen lataus | Block-based bitstream supports arbitrary continuous byte streaming |
Tekninen vertailumatriisi: DEFLATE vs. kilpailijat
| Tekninen attribuutti | DEFLATE (Nykyinen) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Standardointi | IETF RFC 1951 (Raaka) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Liukuva ikkuna | Enintään 32 kilotavua | Enintään 32 kilotavua | Jopa 16 megatavua | Jopa 2 gigatavua |
| Tarkistussummatila | Adler-32 (zlib-kääreessä) | CRC-32 (gzip-kääreessä) | Ei sisäistä virtaa | xxHash64 (nopea 64-bittinen hajautus) |
| Jokapäiväinen käyttö | PNG-kuvat, PDF-virrat, ZIP | Unix .tar.gz, HTTP gzip | Verkkofontit (WOFF2), HTTP br | Linux-ydin, tietokannat, pelit |
Yleiset korruptiotilat ja heksatietojehdotusopas
Purkaminen epäonnistuu virheilmoitukseen 'Z_DATA_ERROR: incorrect data check'.
Perussyy: Epäsuhta zlib-käärityn virran lopussa olevassa 4-tavuisessa Adler-32-tarkistussummassa.
Korjaus: Ohita Adler-32-varmennus käyttämällä raakaa purkua tai korjaa File2File Deflate Recovery -työkalulla.
Turvallisuusanalyysi ja jäsenninhyökkäysvektorit
DEFLATE-jäsenninten on valvottava tarkasti Huffman-puun rakennuskoodeja puskurin ulkopuolisten osoitinkirjoitusten estämiseksi.
Tunnetut hyökkäysvektorit
- Puutteelliset tai ylimerkityt dynaamiset Huffman-puun bittipituustaulukot aiheuttavat virheellisiä muistin lukuja.
- Purkupommi (zip-pommi), joka laajentaa pienet hyötykuormat sadoiksi gigatavuiksi RAM-muistia.
- Puskurin yliluku validoimattomissa liukuvan ikkunan etäisyyskoodeissa.
Parhaat puolustuskäytännöt:
Historia ja virstanpylväät
Tärkeimmät edut
- Kiistaton globaali standardi: toteutettu laitteistossa, käyttöjärjestelmissä ja kaikissa ohjelmointiajoaikaympäristöissä.
- Patentti- ja rojaltivapaa suunnittelu takaa avoimen pääsyn koko IT-alalla.
- Nopea purku minimaalisella muistijalanjäljellä (vaatii vain 32 kt liukuvan ikkunan muistia).
Tekniset rajoitukset
- Liukuva ikkona rajoitettu 32 kilotavuun, mikä heikentää pakkaustehokkuutta suurissa tiedostoissa, joissa on kaukaisia toistoja.
- Alhaisemmat pakkaussuhteet nykyaikaisilla verkkoresursseilla verrattuna uudempiin algoritmeihin, kuten Brotliin ja Zstandardiin.
- Raaoista DEFLATE-virroista puuttuu itsekuvaileva metatieto tai säilökehys ilman zlib- tai gzip-kääreitä.
Mielenkiintoisia teknisiä faktoja
- Phil Katz keksi DEFLATE-algoritmin sen jälkeen, kun Unisys haastoi hänet oikeuteen varhaisissa PKARC-työkaluissa käytetystä patentoidusta LZW-algoritmista.
- Standardit zlib-otsikkotavut '78 9C' osoittavat oletuspakkauksen, '78 01' alhaisen pakkauksen ja '78 DA' maksimipakkauksen.
- Jokainen maapallon PNG-kuva käyttää DEFLATE-algoritmia IDAT-pikselilohkojen pakkaamiseen.
Usein kysytyt tekniset kysymykset
Mitä eroa on DEFLATE-, zlib- ja gzip-muodoilla?
DEFLATE on raaka pakkausalgoritmi (RFC 1951). Zlib käärii DEFLATE:n 2 tavun otsakkeella ja Adler-32-tarkistussummalla (RFC 1950). Gzip käärii DEFLATE:n tiedoston metatiedoilla ja CRC-32-tarkistussummalla (RFC 1952).
Miksi PNG käyttää DEFLATE-pakkausta?
PNG-muoto luotiin vuonna 1995 korvaamaan GIF ilman patentoituja LZW-algoritmeja, ja se valitsi pakkauksekseen avoimen ja rojaltivapaan DEFLATE-algoritmin.
Miten voin purkaa raa'an .deflate-tiedoston?
Voit purkaa raakaluontoisia DEFLATE- tai zlib-tavuvirtoja alkuperäisiksi pakkaamattomiksi tiedostoiksi File2File.app-palvelun avulla suoraan verkkoselaimessasi.
Aiheeseen liittyvät DEFLATE-muunnosparit
GZIP-virran muuntaminen raakaksi DEFLATE-muodoksi poistaa ulkoisen tiedostokääreen ja otsikon metatiedot jättäen jäljelle vain pakatun hyötykuorman erikoistuneita verkkoprotokollia ja matalan tason arkistoja varten.
Raaka DEFLATE -virran muuntaminen GZIP-virraksi kääri pakatun sisällön vakiomuotoiseen säilöön metatietootsikoilla, jotta käyttöjärjestelmät ja verkkotyökalut voivat lukea sen oikein.