Neapdorotas DEFLATE (.deflate)

IETF Standartinis

DEFLATE yra visur paplitęs duomenų glaudinimo be nuostolių algoritmas skaičiavimo istorijoje, jau daugiau nei tris dešimtmečius maitinantis ZIP archyvus, GZIP srautus, PNG vaizdus ir HTTP žiniatinklio glaudinimą.

Konvertuoti GZIP į DEFLATE

Nemokamas GZIP į DEFLATE konverteris naršyklėje. Konvertuokite failus akimirksniu savo įrenginyje.

Tikrinti ir metaduomenys

Operacinės sistemos ir failų analizatoriai atpažįsta DEFLATE failus tikrindami pradinę dvejetainę baitų seką:

Pasirinkite arba nuvilkite failus čia

100% privatus konvertavimas naršyklėje - failai niekada nepalieka jūsų įrenginio

arba įklijuokite Ctrl+V
Nulinio tinklo perdavimo privatumo garantija: 0 baitų įkelta į išorinius serverius. Visas apdorojimas vyko vietoje, jūsų naršyklės smėlio dėžėje (sandbox).

Baitų lygio antraštės parašas (magiškieji baitai)

Operacinės sistemos ir failų analizatoriai atpažįsta DEFLATE failus tikrindami pradinę dvejetainę baitų seką:

ŠEŠIOLIKTAINIS PARAŠAS (POSLINKIS 0):

78 9C / 78 01 / 78 DA

ASCII ATVAIZDAVIMAS: xœ / x. / xÚ

Standartizacija: IETF RFC 1951 / RFC 1950 (zlib)

Techninės specifikacijos

Konteinerio architektūraRaw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum
GlaudinimasLZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding
Baitų seka (Endianness)Little-Endian bit-packing order
Spalvų erdvėsN/A (Data Compression Stream)
Kanalai ir struktūraRaw binary or text data stream
Maksimalūs matmenysUnbounded stream length
Skaidrumas100% bit-exact lossless data reproduction
Srautas ir progresyvusis įkėlimasBlock-based bitstream supports arbitrary continuous byte streaming

Techninė palyginimo matrica: DEFLATE vs konkurentai

Techninis atributasDEFLATE (Dabartinis)GZBROTLIZSTD
StandartizavimasIETF RFC 1951 (Neapdorotas) / RFC 1950 (zlib)IETF RFC 1952 (Gzip)IETF RFC 7932 (Brotli)IETF RFC 8878 (Zstandard)
Slankiojantis langasMaksimaliai 32 kilobaitaiMaksimaliai 32 kilobaitaiIki 16 megabaitųIki 2 gigabaitų
Kontrolinės sumos režimasAdler-32 (zlib apvalkale)CRC-32 (gzip apvalkale)Nėra įmontuoto srautexxHash64 (64 bitų greitas maišos kodas)
Kasdienis naudojimasPNG vaizdai, PDF srautai, ZIP„Unix" .tar.gz, HTTP gzipŽiniatinklio šriftai (WOFF2), HTTP br„Linux" branduolys, duomenų bazės, žaidimai

Dažni sugadinimo režimai ir šešioliktainio atkūrimo vadovas

Išskleidimas nepavyksta su klaida „Z_DATA_ERROR: incorrect data check".

Pirminė priežastis: Nesutapimas 4 baitų Adler-32 kontrolinėje sumoje zlib apvalkalo srauto pabaigoje.

Atkūrimas: Atsisakykite Adler-32 patvirtinimo naudodami neapdorotą išskleidimą arba suremontuokite naudodami „File2File Deflate Recovery".

Saugumo analizė ir analizatoriaus atakos vektoriai

DEFLATE analizatoriai privalo griežtai patvirtinti Huffman medžio konstravimo kodus, kad išvengtų atminties ribų pažeidimo rodyklės rašymo.

Žinomi atakos vektoriai

  • Nepilnos arba per daug užsakytos dinaminio Huffman medžio bitų ilgio lentelės, sukeliančios neteisingus atminties skaitymus.
  • Išskleidimo bomba (ZIP bomba), išskleidžianti mažytes naudingąsias apkrovas į šimtus gigabaitų RAM.
  • Buferio nuskaitymas už ribų nepatvirtintuose slankiojančio lango atstumo koduose.

Geriausia apsaugos praktika:

Istorinė kilmė ir svarbiausi etapai

1996Peteris Deutsch formalizuoja DEFLATE kaip IETF RFC 1951, o zlib kaip RFC 1950.
1995Jean-loup Gailly ir Markas Adleris išleidžia zlib - universalią C kalbos etaloninę biblioteką, skirtą DEFLATE.
1991Philas Katzas išranda DEFLATE programai PKZIP 2.0, kad pakeistų senesnius „Implode" ir „Reduce" algoritmus.

Pagrindiniai privalumai

  • Neginčijamas pasaulinis standartas: įdiegtas aparatūroje, operacinėse sistemose ir kiekvienoje programavimo vykdymo aplinkoje.
  • Patentų neturintis ir honorarų nereikalaujantis dizainas užtikrina atvirą prieigą visoje skaičiavimo technikos pramonėje.
  • Greitas išskleidimas su minimaliu atminties poreikiu (reikalauja tik 32 KB slankiojančio lango atminties).

Techniniai apribojimai ir trūkumai

  • Slankiojantis langas apribotas iki 32 KB, o tai sumažina glaudinimo efektyvumą dideliuose failuose su tolimais pasikartojimais.
  • Mažesni glaudinimo koeficientai šiuolaikiniuose žiniatinklio ištekliuose, palyginti su naujesniais algoritmais, tokiais kaip „Brotli" ir „Zstandard".
  • Neapdorotiems DEFLATE srautams trūksta save apibūdinančių metaduomenų arba konteinerio rėmelių be zlib ar gzip apvalkalų.

Įdomūs techniniai faktai

  • Philas Katzas išrado DEFLATE po to, kai „Unisys" jį padavė į teismą dėl patentuoto LZW algoritmo, naudoto ankstyvosiose PKARC programose.
  • Standartiniai zlib antraštės baitai „78 9C" nurodo numatytąjį glaudinimą, „78 01" - mažą glaudinimą, o „78 DA" - maksimalų glaudinimą.
  • Kiekvienas PNG vaizdas Žemėje naudoja DEFLATE savo IDAT pikselių dalims suspausti.

Dažniausiai užduodami techniniai klausimai

Kuo skiriasi DEFLATE, zlib ir gzip?

DEFLATE yra pirminis suspaudimo algoritmas (RFC 1951). Zlib apgaubia DEFLATE 2 baitų antrašte ir Adler-32 kontrolinės sumos algoritmu (RFC 1950). Gzip apgaubia DEFLATE failo metaduomenimis ir CRC-32 kontroline suma (RFC 1952).

Kodėl PNG naudoja DEFLATE?

PNG formatas buvo sukurtas 1995 m. kaip GIF pakaitalas, nenaudojantis patentuotų LZW algoritmų, todėl suspaudimui pasirinktas atviras ir nemokamas DEFLATE.

Kaip galiu išskleisti neapdorotą .deflate failą?

Naudodami File2File.app tiesiogiai savo naršyklėje, galite išskleisti neapdorotus DEFLATE arba zlib baitų srautus į pradinius nesuspaustus failus.