Surovi DEFLATE (.deflate)
IETF StandardDEFLATE je najbolj razširjen algoritem za stiskanje podatkov brez izgub v zgodovini računalništva, ki že več kot tri desetletja poganja arhive ZIP, pretoke GZIP, slike PNG in spletno stiskanje HTTP.
Pretvori GZIP v DEFLATE
Brezplačen pretvornik iz GZIP v DEFLATE v brskalniku. Pretvorite datoteke takoj v svoji napravi.
Pregled in metapodatki
Operacijski sistemi in analizatorji datotek identificirajo datoteke DEFLATE s pregledom vodilnega binarnega zaporedja bajtov:
Podpis glave na ravni bajtov (Čarobni bajti)
Operacijski sistemi in analizatorji datotek identificirajo datoteke DEFLATE s pregledom vodilnega binarnega zaporedja bajtov:
PODPIS HEX (ZAMIK 0):
78 9C / 78 01 / 78 DAREPREZENTACIJA ASCII: xœ / x. / xÚ
Standardizacija: IETF RFC 1951 / RFC 1950 (zlib)
Tehnične specifikacije
| Arhitektura vsebnika | Raw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum |
| Stiskanje | LZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding |
| Vrstni red bajtov | Little-Endian bit-packing order |
| Barvni prostori | N/A (Data Compression Stream) |
| Kanali in struktura | Raw binary or text data stream |
| Največje dimenzije | Unbounded stream length |
| Prosojnost | 100% bit-exact lossless data reproduction |
| Pretočno in progresivno predvajanje | Block-based bitstream supports arbitrary continuous byte streaming |
Tehnična primerjalna matrika: DEFLATE proti konkurenci
| Tehnični atribut | DEFLATE (Trenutno) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Standardizacija | IETF RFC 1951 (Surovo) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Drseče okno | Največ 32 kilobajtov | Največ 32 kilobajtov | Do 16 megabajtov | Do 2 gigabajta |
| Način vsote | Adler-32 (v vmesniku zlib) | CRC-32 (v vmesniku gzip) | Brez vgrajenega pretoka | xxHash64 (64-bitno hitro zgoščevanje) |
| Vsakdanja uporaba | Slike PNG, pretoki PDF, ZIP | Unix .tar.gz, HTTP gzip | Spletne pisave (WOFF2), HTTP br | Jedro Linuxa, podatkovne baze, igre |
Pogosti načini okvar in vodič za heksadecimalno obnovo
Razširjanje ne uspe z napako 'Z_DATA_ERROR: incorrect data check'.
Glavni vzrok: Neujemane 4-bajtne vsote Adler-32 na koncu pretoka, ovitega v zlib.
Sanacija: Obidite preverjanje Adler-32 z uporabo surovega razširjanja ali popravite s funkcijo File2File Deflate Recovery.
Varnostna analiza in napadalni vektorji razčlenjevalnika
Razčlenjevalniki DEFLATE morajo strogo preverjati kode gradnje Huffmanovega drevesa, da preprečijo zapisovanje kazalcev izven meja.
Znani vektorji napada
- Nepopolne ali preobremenjene tabele dolžin bitov dinamičnega Huffmanovega drevesa, ki povzročajo neveljavno branje pomnilnika.
- Eksplozija pri razširjanju (bomba zip), ki majhne vsebine razširi v stotine gigabajtov delovnega pomnilnika.
- Prekomerno branje medpomnilnika v nepreverjenih kodah razdalje drsečega okna.
Obrambne najboljše prakse:
Zgodovinski izvor in mejniki
Ključne prednosti
- Nedvomni svetovni standard: vgrajen v strojno opremo, operacijske sisteme in vsako programsko izvajalno okolje.
- Zasnova brez patentov in licenčnin, ki zagotavlja odprt dostop v celotni računalniški industriji.
- Hitro razširjanje z minimalno porabo pomnilnika (zahteva le 32 KB pomnilnika z drsečim oknom).
Tehnične omejitve in slabosti
- Drseče okno je omejeno na 32 KB, kar zmanjšuje učinkovitost stiskanja na velikih datotekah z oddaljenimi ponovitvami.
- Nižja razmerja stiskanja sodobnih spletnih virov v primerjavi z novejšimi algoritmi, kot sta Brotli in Zstandard.
- Surovi pretoki DEFLATE nimajo samooisovalnih metapodatkov ali okvirjev vsebovalnika brez vmesnikov zlib ali gzip.
Zanimive tehnične malenkosti
- Phil Katz je izumil DEFLATE, potem ko ga je Unisys tožil zaradi patentiranega algoritma LZW, ki se je uporabljal v zgodnjih pripomočkih PKARC.
- Standardna bajta glave zlib '78 9C' označujeta privzeto stiskanje, '78 01' nizko stiskanje in '78 DA' največje stiskanje.
- Vsaka slika PNG na svetu uporablja DEFLATE za stiskanje svojih slikovnih pikslov IDAT.
Pogosta tehnična vprašanja
Kakšna je razlika med DEFLATE, zlib in gzip?
DEFLATE je surov stiskalni algoritem (RFC 1951). Zlib ovije DEFLATE z 2-bajtnim glavo in kontrolno vsoto Adler-32 (RFC 1950). Gzip ovije DEFLATE z metapodatki datoteke in kontrolno vsoto CRC-32 (RFC 1952).
Zakaj PNG uporablja DEFLATE?
Format PNG je bil ustvarjen leta 1995 kot zamenjava za GIF brez uporabe patentiranih LZW algoritmov, pri čemer je bila za stiskanje izbrana odprta in prosta koda DEFLATE.
Kako lahko dekompresiram surovo datoteko .deflate?
Surove bajtne tokove DEFLATE ali zlib lahko dekompresirate v izvirne nestisnjene datoteke z uporabo File2File.app neposredno v svojem spletnem brskalniku.
Sorodni pari pretvorbe za DEFLATE
Pretvorba pretoka GZIP v surovi DEFLATE odstrani zunanji vsebnik datoteke in metapodatke glave, tako da ostane le stisnjeno breme za specializirane omrežne protokole in nizkonivojske arhive.
Pretvarjanje neobdelanega pretoka DEFLATE v pretok GZIP ovije stisnjene podatke znotraj standardnega vsebnika s hiperpodatkovnimi glavami, tako da jih operacijski sistemi in spletna orodja lahko pravilno preberejo.