Nyers DEFLATE (.deflate)
IETF SzabványA 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:
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ődnekASCII Á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úra | Nyers 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és | LZ77 csúszó szótár (legfeljebb 32 KB-os ablakkal), dinamikus vagy statikus Huffman-entrópiakódolással kombinálva |
| Bájtsorrend | kis bájtsorrendű bitcsomagolási sorrend |
| Színterek | Nem alkalmazható (adattömörítési adatfolyam) |
| Csatornák és struktúra | Nyers bináris vagy szöveges adatfolyam |
| Max. méretek | Korlátlan adatfolyam-hossz |
| Átlátszóság | Veszteségmentes adat-visszaállítás, 100%-ban bitpontos egyezéssel |
| Streaming és progresszív | A blokkalapú bitfolyam tetszőleges, folyamatos bájtfolyamot támogat |
Műszaki összehasonlító mátrix: DEFLATE vs. versenytársak
| Technikai attribútum | DEFLATE (Jelenlegi) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Szabványosítás | IETF RFC 1951 (nyers) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Csúszóablak | Legfeljebb 32 KB | Legfeljebb 32 KB | Legfeljebb 16 MB | Legfeljebb 2 GB |
| Ellenőrzőösszeg típusa | Adler-32 (a zlib burkolóban) | CRC-32 (a gzip burkolóban) | Az adatfolyamba nincs beépítve | xxHash64 (64 bites gyors hash) |
| Mindennapi használat | PNG-képek, PDF adatfolyamok, ZIP | Unix .tar.gz, HTTP gzip | Webes betűtípusok (WOFF2), HTTP br | Linux 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
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.
Kapcsolódó DEFLATE konverziós párok
A GZIP-folyam nyers DEFLATE formátumra való konvertálása eltávolítja a külső fájlburkolatot és a fejléc metaadatait, így csak a tömörített tartalom marad meg a speciális hálózati protokollok és az alacsony szintű archívumok számára.
A nyers DEFLATE GZIP adatfolyammá konvertálása metaadat-fejlécekkel ellátott szabványos tárolóba csomagolja a tömörített adatcsomagot, így az operációs rendszerek és a webes eszközök megfelelően tudják olvasni.