Töötlemata DEFLATE (.deflate)

IETF Standard

DEFLATE on arvutite ajaloo kõige levinum kadudeta andmetöötluse tihendusalgoritm, mis on üle kolme aastakümne toetanud ZIP-arhiive, GZIP-vooge, PNG-pilte ja HTTP-veebitihendust.

Teisenda formaadist GZIP formaati DEFLATE

Tasuta GZIP -> DEFLATE konverter brauseris. Teisenda faile koheselt oma seadmes.

Kontrolli ja metaandmed

Operatsioonisüsteemid ja failianalüsaatorid tuvastavad DEFLATE faile, kontrollides algset binaarset baidijada:

Vali või lohista failid siia

100% privaatne konversioon brauseris - failid ei lahku kunagi sinu seadmest

või kleebi Ctrl+V
Null-võrguülekande privaatsusgarantii: 0 baiti laaditakse üles välistesse serveritesse. Kogu töötlemine toimub lokaalselt sinu brauseri liivakastis.

Baidi-taseme päise allkiri (maagilised baidid)

Operatsioonisüsteemid ja failianalüsaatorid tuvastavad DEFLATE faile, kontrollides algset binaarset baidijada:

HEX-ALLKIRI (NIHE 0):

78 9C / 78 01 / 78 DA

ASCII-ESITUS: xœ / x. / xÚ

Standardiseerimine: IETF RFC 1951 / RFC 1950 (zlib)

Tehnilised andmed

Konteineri arhitektuurRaw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum
TihendamineLZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding
Baitide järjekord (Endianness)Little-Endian bit-packing order
VärviruumidN/A (Data Compression Stream)
Kanalid ja struktuurRaw binary or text data stream
Max mõõtmedUnbounded stream length
Läbipaistvus100% bit-exact lossless data reproduction
Voogedastus ja progressiivsusBlock-based bitstream supports arbitrary continuous byte streaming

Tehniline võrdlusmaatriks: DEFLATE vs konkurendid

Tehniline atribuutDEFLATE (Praegune)GZBROTLIZSTD
StandardiseerimineIETF RFC 1951 (Toores) / RFC 1950 (zlib)IETF RFC 1952 (Gzip)IETF RFC 7932 (Brotli)IETF RFC 8878 (Zstandard)
Libisev akenMaksimaalselt 32 kilobaitiMaksimaalselt 32 kilobaitiKuni 16 megabaitiKuni 2 gigabaiti
Kontrollsumma režiimAdler-32 (zlib-ümbrises)CRC-32 (gzip-ümbrises)Sisseehitatud voog puudubxxHash64 (64-bitine kiire räsifunktsioon)
Igapäevane kasutusPNG-pildid, PDF-vood, ZIPUnixi .tar.gz, HTTP gzipVeebifondid (WOFF2), HTTP brLinuxi kernel, andmebaasid, mängud

Levinud riknemisvead ja heksataaste juhend

Lahtipakkumine ebaõnnestub veaga 'Z_DATA_ERROR: incorrect data check'.

Juurpõhjus: Ebakõla zlib-ümbrises voo lõpus olevas 4-baidises Adler-32 kontrollsummas.

Taastamine: Jäta Adler-32 kontrollimine vahele, kasutades toorest lahtipakkimist, või paranda File2File Deflate taastusega.

Turvaanalüüs ja parsimisründevektorid

DEFLATE-i parserid peavad rangelt valideerima Huffmani puu ehituse koode, et vältida mälupiiridest väljaspool olevaid viida kirjutamisi.

Teadaolevad ründavektorid

  • Mittetäielikud või liialt tellitud dünaamilised Huffmani puu bitipikkuste tabelid, mis põhjustavad kehtetuid mälulugemisi.
  • Lahtipakkumispomm (zip-pomm), mis paisutab pisikesed andmemahtuvad sadadeks gigabaitideks RAM-is.
  • Puhvri ülelugemine valideerimata libiseva akna kauguskoodides.

Kaitsealased parimad tavad:

Ajalooline taust ja verstapostid

1996Peter Deutsch vormistab DEFLATE-i IETF RFC 1951 standardina ja zlib-i RFC 1950 standardina.
1995Jean-loup Gailly ja Mark Adler avaldavad zlib-i, mis on DEFLATE-i universaalne C-keele tugiteek.
1991Phil Katz leiutab DEFLATE-i PKZIP 2.0 jaoks, et asendada vanemad Implode ja Reduce algoritmid.

Peamised eelised

  • Vaidlmatu ülemaailmne standard: rakendatud riistvaras, operatsioonisüsteemides ja igas programmeerimise käituskeskkonnas.
  • Patendivaba ja litsentsitasuta disain tagab avatud juurdepääsu kogu arvutitööstuses.
  • Kiire lahtipakkumine minimaalse mälukasutusega (vajab ainult 32 KB libiseva akna mälu).

Tehnilised piirangud ja puudused

  • Libisev aken on piiratud 32 kilobaidiga, mis vähendab tihendamise tõhusust suurte failide puhul, millel on kauged kordused.
  • Väiksem tihendussuhe võrreldes uuemate algoritmidega, nagu Brotli ja Zstandard, kaasaegsete veebivarade puhul.
  • Toored DEFLATE-vood ei sisalda isevedavaid metaandmeid ega konteineriraamistikku ilma zlib- või gzip-ümbristeta.

Huvitavaid tehnilisi fakte

  • Phil Katz leiutas DEFLATE-i pärast seda, kui Unisys kaebas ta kohtusse varasemates PKARC-utiliitides kasutatud patenteeritud LZW algoritmi pärast.
  • Standardse zlib-päise baidid '78 9C' tähistavad vaikesuhet, '78 01' madalat tihendust ja '78 DA' maksimaalset tihendust.
  • Iga PNG-pilt Maal kasutab DEFLATE-i oma IDAT-piksliplokkide tihendamiseks.

Korduma kippuvad tehnilised küsimused

Mis vahe on DEFLATE-il, zlib-il ja gzip-il?

DEFLATE on toores tihendusalgoritm (RFC 1951). Zlib pakendab DEFLATE-i 2-baidise päise ja Adler-32 kontrollsummaga (RFC 1950). Gzip pakendab DEFLATE-i faili metaandmete ja CRC-32 kontrollsummaga (RFC 1952).

Miks kasutab PNG vorming DEFLATE-i?

PNG-vorming loodi 1995. aastal GIF-i asendamiseks ilma patenteeritud LZW-algoritme kasutamata, valides tihendamiseks avatud ja autoritasuta DEFLATE-i.

Kuidas ma saan toorest .deflate-faili lahti pakkida?

Saate toored DEFLATE- või zlib-baidivood algseteks tihendamata failideks lahti pakkida otse oma veebibrauseris rakenduse File2File.app abil.