Sirovi DEFLATE (.deflate)
IETF StandardnoDEFLATE je najzastupljeniji algoritam za kompresiju podataka bez gubitaka u računalnoj povijesti, koji već više od tri desetljeća pokreće ZIP arhive, GZIP streamove, PNG slike i HTTP web kompresiju.
Pretvori GZIP u DEFLATE
Besplatni GZIP u DEFLATE pretvarač u pregledniku. Trenutno pretvorite datoteke na svom uređaju.
Pregledaj i metapodaci
Operativni sustavi i alati za analizu datoteka identificiraju DEFLATE datoteke provjerom početnog niza binarnih bajtova:
Potpis zaglavlja na razini bajtova (Magic Bytes)
Operativni sustavi i alati za analizu datoteka identificiraju DEFLATE datoteke provjerom početnog niza binarnih bajtova:
HEX POTPIS (POMAK 0):
78 9C / 78 01 / 78 DAASCII PRIKAZ: xœ / x. / xÚ
Standardizacija: IETF RFC 1951 / RFC 1950 (zlib)
Tehničke specifikacije
| Arhitektura spremnika | Raw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum |
| Kompresija | LZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding |
| 字节序 | Little-Endian bit-packing order |
| Prostori boja | N/A (Data Compression Stream) |
| Kanali i struktura | Raw binary or text data stream |
| Maksimalne dimenzije | Unbounded stream length |
| Prozirnost | 100% bit-exact lossless data reproduction |
| Streaming i progresivno | Block-based bitstream supports arbitrary continuous byte streaming |
Tehnička matrica usporedbe: DEFLATE vs Konkurencija
| Tehnički atribut | DEFLATE (Trenutno) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Standardizacija | IETF RFC 1951 (Raw) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Klizni prozor | Najviše 32 kilobajta | Najviše 32 kilobajta | Do 16 megabajta | Do 2 gigabajta |
| Način kontrolnog zbroja | Adler-32 (u zlib ovoju) | CRC-32 (u gzip ovoju) | Nema ugrađen u stream | xxHash64 (brzi 64-bitni hash) |
| Svakodnevna upotreba | PNG slike, PDF streamovi, ZIP | Unix .tar.gz, HTTP gzip | Web fontovi (WOFF2), HTTP br | Linux kernel, baze podataka, igrice |
Uobičajeni načini oštećenja i vodič za heksadecimalni oporavak
Dekompresija ne uspijeva s porukom 'Z_DATA_ERROR: incorrect data check'.
Temeljni uzrok: Nepodudaranje u 4-bajtni Adler-32 kontrolni zbroj na kraju streama omotanog u zlib.
Oporavak: Zaobiđite Adler-32 provjeru pomoću sirovog inflate-a ili popravite datoteku pomoću File2File Deflate Recovery alata.
Sigurnosna analiza i vektori napada na parser
DEFLATE parseri moraju strogo provjeravati kodove za izgradnju Huffmanovog stabla kako bi spriječili pisanje pokazivača izvan granica.
Poznati vektori napada
- Nep potpune ili preopterećene tablice duljina bitova dinamičkog Huffmanovog stabla koje uzrokuju nevažeća čitanja iz memorije.
- Dekompresijska bomba (zip bomba) koja širi sitne terete u stotine gigabajta RAM-a.
- Pretjerano čitanje međuspremnika (buffer over-read) u neprovjerenim kodovima udaljenosti kliznog prozora.
Najbolje obrambene prakse:
Povijesni izvori i prekretnice
Ključne prednosti
- Neprikosnoveni globalni standard: implementiran u sklopu hardvera, operativnih sustava i svakog programskog okruženja.
- Dizajn bez patenata i autorskih naknada jamči otvoren pristup u cijeloj računalnoj industriji.
- Brza dekompresija s minimalnim utjecajem na memoriju (zahtijeva samo 32 KB memorije kliznog prozora).
Tehnička ograničenja i nedostaci
- Klizni prozor ograničen na 32 KB, što smanjuje učinkovitost kompresije na velikim datotekama s udaljenim ponavljanjima.
- Niži omjeri kompresije na modernim web resursima u usporedbi s novijim algoritmima poput Brotlija i Zstandarda.
- Sirovi DEFLATE streamovi nemaju samopisne metapodatke ili okvir spremnika (kontejnera) bez zlib ili gzip ovoja.
Zanimljive tehničke činjenice
- Phil Katz je izmislio DEFLATE nakon što ga je Unisys tužio zbog patentiranog LZW algoritma korištenog u ranim PKARC uslužnim programima.
- Standardni zlib zaglavni bajtovi '78 9C' označavaju zadanu kompresiju, '78 01' nisku kompresiju, a '78 DA' maksimalnu kompresiju.
- Svaka PNG slika na Zemlji koristi DEFLATE za kompresiju svojih IDAT blokova piksela.
Često postavljana tehnička pitanja
Koja je razlika između DEFLATE, zlib i gzip formata?
DEFLATE je sirovi algoritam kompresije (RFC 1951). Zlib omotava DEFLATE s dvobajtnim zaglavljem i Adler-32 kontrolnim zbrojem (RFC 1950). Gzip omotava DEFLATE s metapodacima datoteke i CRC-32 kontrolnim zbrojem (RFC 1952).
Zašto PNG koristi DEFLATE?
PNG format stvoren je 1995. godine kao zamjena za GIF bez korištenja patentiranih LZW algoritama, odabravši otvoreni DEFLATE bez naknade za kompresiju.
Kako mogu dekomprimirati sirovu .deflate datoteku?
Možete dekomprimirati sirove DEFLATE ili zlib točkaste tokove bajtova u izvorne nekomprimirane datoteke koristeći File2File.app izravno u svom web pregledniku.
Povezani parovi konverzije za DEFLATE
Pretvaranje GZIP streama u sirovi DEFLATE uklanja vanjski omot datoteke i metapodatke zaglavlja, ostavljajući samo komprimirani sadržaj za specijalizirane mrežne protokole i niske razine arhiva.
Pretvaranje sirovog DEFLATE toka u GZIP tok obavija komprimirane podatke unutar standardnog spremnika sa zaglavljima metapodataka kako bi ih operativni sustavi i web alati mogli ispravno pročitati.