Nyers DEFLATE (.deflate)

IETF Szabvány

A DEFLATE a számítástechnika történetének széles körben használt veszteségmentes adattömörítő algoritmusa, amely több mint három évtizede működteti a ZIP-archívumokat, a GZIP-adatfolyamokat, a PNG-képeket és a HTTP-s webes tömörítést.

GZIP konvertálása erre: DEFLATE

Ingyenes, böngészőben használható GZIP-konverter DEFLATE formátumba. A fájlokat azonnal konvertálhatja az eszközén.

Vizsgálat és metaadatok

Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) DEFLATE fájlokat:

Válasszon ki vagy húzzon ide fájlokat

Privát - a fájlok soha nem hagyják el az eszközét

vagy beillesztés Ctrl+V
Adatvédelmi garancia hálózati adatátvitel nélkül: 0 bájt került fel külső szerverekre. Minden feldolgozás helyben, a böngésző elkülönített környezetében történt.

Bájtszintű fejlécaláírás (fájlazonosító bájtok)

Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) DEFLATE fájlokat:

HEX ALÁÍRÁS (ELTOLÁS 0):

A nyers DEFLATE-nek nincs rögzített aláírása; a zlib-burkolatú adatfolyamok változó CMF/FLG bájtokkal kezdődnek

ASCII ÁBRÁZOLÁS: Nincs rögzített aláírás

Szabványosítás: IETF RFC 1951 / RFC 1950 (zlib)

Műszaki specifikációk

Konténer architektúraNyers RFC 1951-bitfolyam vagy RFC 1950 szerinti zlib-burkolatú adatfolyam 2 bájtos fejléccel és Adler-32 ellenőrzőösszeggel
TömörítésLZ77 csúszó szótár (legfeljebb 32 KB-os ablakkal), dinamikus vagy statikus Huffman-entrópiakódolással kombinálva
Bájtsorrendkis bájtsorrendű bitcsomagolási sorrend
SzínterekNem alkalmazható (adattömörítési adatfolyam)
Csatornák és struktúraNyers bináris vagy szöveges adatfolyam
Max. méretekKorlátlan adatfolyam-hossz
ÁtlátszóságVeszteségmentes adat-visszaállítás, 100%-ban bitpontos egyezéssel
Streaming és progresszívA blokkalapú bitfolyam tetszőleges, folyamatos bájtfolyamot támogat

Műszaki összehasonlító mátrix: DEFLATE vs. versenytársak

Technikai attribútumDEFLATE (Jelenlegi)GZBROTLIZSTD
SzabványosításIETF RFC 1951 (nyers) / RFC 1950 (zlib)IETF RFC 1952 (Gzip)IETF RFC 7932 (Brotli)IETF RFC 8878 (Zstandard)
CsúszóablakLegfeljebb 32 KBLegfeljebb 32 KBLegfeljebb 16 MBLegfeljebb 2 GB
Ellenőrzőösszeg típusaAdler-32 (a zlib burkolóban)CRC-32 (a gzip burkolóban)Az adatfolyamba nincs beépítvexxHash64 (64 bites gyors hash)
Mindennapi használatPNG-képek, PDF adatfolyamok, ZIPUnix .tar.gz, HTTP gzipWebes betűtípusok (WOFF2), HTTP brLinux kernel, adatbázisok, játékok

Gyakori sérülési módok és hexadecimális helyreállítási útmutató

A kitömörítés a „Z_DATA_ERROR: incorrect data check" hibaüzenettel meghiúsul.

Kiváltó ok: Eltérés a zlib-burkolatú adatfolyam végén található 4 bájtos Adler-32 ellenőrzőösszegben.

Helyreállítás: Hagyja ki az Adler-32 ellenőrzését nyers kitömörítéssel, vagy javítsa ki a File2File.app Deflate Recovery eszközével.

Biztonsági elemzés és elemző (parser) támadási vektorok

A DEFLATE-elemzőknek szigorúan ellenőrizniük kell a Huffman-fák felépítésére szolgáló kódokat, hogy megelőzzék a határokon túli memóriába írást.

Ismert támadási vektorok

  • Hiányos vagy túlméretezett bit hosszúságú táblák a dinamikus Huffman-fában, amelyek érvénytelen memóriaolvasást okoznak.
  • Kitömörítési bomba (zip bomb), amely apró hasznos adatokat több száz gigabájtnyi RAM-má duzzaszt.
  • Pufferen túli olvasás nem ellenőrzött csúszóablak-távolságkódok esetén.

Ajánlott védekezési módszerek: Szabj meg felső korlátot a memóriafoglalásra, és korlátozd a kitömörítés során az adatok növekedési arányát.

Történeti háttér és mérföldkövek

1996Peter Deutsch az IETF RFC 1951-ben szabványosítja a DEFLATE-et, a zlibet pedig az RFC 1950-ben.
1995Jean-loup Gailly és Mark Adler kiadja a zlib.
1991Phil Katz feltalálja a DEFLATE-et a PKZIP 2.0 számára, hogy felváltsa a régebbi Implode és Reduce algoritmusokat.

Főbb előnyök

  • A DEFLATE-et széles körben megvalósították szoftverkönyvtárakban és fájlformátumokban, de a támogatás az adott futtatókörnyezettől és alkalmazástól függ.
  • A DEFLATE specifikációja szabadon megvalósítható; a licencelés és a támogatás az adott szoftvermegvalósítástól függ.
  • Gyors kitömörítés minimális memóriahasználattal (csak 32 KB-os csúszóablakot igényel).

Technikai korlátok és hátrányok

  • A csúszóablak 32 KB-ra korlátozott, ami csökkenti a tömörítési hatékonyságot a távoli redundanciát tartalmazó nagy fájlok esetén.
  • Alacsonyabb tömörítési arány a modern webes erőforrásoknál az újabb algoritmusokhoz, például a Brotlihoz és a Zstandardhoz képest.
  • A nyers DEFLATE-adatfolyamokból zlib- vagy gzip-burkoló nélkül hiányoznak az önleíró metaadatok és a tárolókeretezés.

Érdekes technikai tudnivalók

  • Phil Katz azután találta fel a DEFLATE-et, hogy a Unisys perbe fogta a korai PKARC segédprogramokban használt szabadalmaztatott LZW algoritmus miatt.
  • A szabványos zlib fejlécbájtok közül a „78 9C" az alapértelmezett tömörítést, a „78 01" az alacsony tömörítést, a „78 DA" pedig a maximális tömörítést jelöli.
  • A PNG a formátumspecifikáció szerint DEFLATE-et használ a képadatfolyam tömörítésére.

Gyakran Ismételt Műszaki Kérdések

Mi a különbség a DEFLATE, a zlib és a gzip között?

A DEFLATE a nyers tömörítési algoritmus (RFC 1951). A zlib egy 2 bájtos fejléccel és Adler-32 ellenőrzőösszeggel egészíti ki a DEFLATE-et (RFC 1950). A gzip fájlmetaadatokkal és CRC-32 ellenőrzőösszeggel egészíti ki a DEFLATE-et (RFC 1952).

Miért használja a PNG a DEFLATE-et?

A PNG formátumot 1995-ben hozták létre a GIF felváltására, szabadalmaztatott LZW-algoritmusok használata nélkül, és a tömörítéshez a nyílt, jogdíjmentes DEFLATE-et választották.

Hogyan tömöríthetek ki egy nyers .deflate fájlt?

A File2File.app segítségével nyers DEFLATE- vagy zlib-bájtfolyamokat bonthat ki közvetlenül a webböngészőben, és visszakaphatja az eredeti, tömörítetlen fájlokat.