Surovi DEFLATE (.deflate)

IETF Standard

DEFLATE 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:

Izberite ali povlecite datoteke sem

100-odstotno zasebna pretvorba v brskalniku - datoteke nikoli ne zapustijo vaše naprave

ali prilepi Ctrl+V
Jamstvo o zasebnosti brez prenosa podatkov v omrežje: 0 bajtov naloženih na zunanje strežnike. Vsa obdelava je potekala lokalno v varnem območju vašega brskalnika.

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 DA

REPREZENTACIJA ASCII: xœ / x. / xÚ

Standardizacija: IETF RFC 1951 / RFC 1950 (zlib)

Tehnične specifikacije

Arhitektura vsebnikaRaw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum
StiskanjeLZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding
Vrstni red bajtovLittle-Endian bit-packing order
Barvni prostoriN/A (Data Compression Stream)
Kanali in strukturaRaw binary or text data stream
Največje dimenzijeUnbounded stream length
Prosojnost100% bit-exact lossless data reproduction
Pretočno in progresivno predvajanjeBlock-based bitstream supports arbitrary continuous byte streaming

Tehnična primerjalna matrika: DEFLATE proti konkurenci

Tehnični atributDEFLATE (Trenutno)GZBROTLIZSTD
StandardizacijaIETF RFC 1951 (Surovo) / RFC 1950 (zlib)IETF RFC 1952 (Gzip)IETF RFC 7932 (Brotli)IETF RFC 8878 (Zstandard)
Drseče oknoNajveč 32 kilobajtovNajveč 32 kilobajtovDo 16 megabajtovDo 2 gigabajta
Način vsoteAdler-32 (v vmesniku zlib)CRC-32 (v vmesniku gzip)Brez vgrajenega pretokaxxHash64 (64-bitno hitro zgoščevanje)
Vsakdanja uporabaSlike PNG, pretoki PDF, ZIPUnix .tar.gz, HTTP gzipSpletne pisave (WOFF2), HTTP brJedro 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

1996Peter Deutsch formalizira DEFLATE kot IETF RFC 1951 in zlib kot RFC 1950.
1995Jean-loup Gailly in Mark Adler izdata zlib, univerzalno referenčno knjižnico v jeziku C za DEFLATE.
1991Phil Katz izumi DEFLATE za PKZIP 2.0 kot zamenjavo za starejše algoritme Implode in Reduce.

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.