Nyers DEFLATE (.deflate)
IETF SzabványA DEFLATE a számítástechnika történetének legelterjedtebb veszteségmentes adattömörítő algoritmusa, amely több mint három évtizede hajtja a ZIP-archívumokat, a GZIP-adatfolyamokat, a PNG-képeket és a HTTP-webtömörítést.
GZIP konvertálása erre: DEFLATE
Ingyenes, böngészőn belüli GZIP - DEFLATE konvertáló. Konvertáljon fájlokat azonnal 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ájt-szintű fejléc aláírás (Magic Bytes)
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):
78 9C / 78 01 / 78 DAASCII REPREZENTÁCIÓ: xœ / x. / xÚ
Szabványosítás: IETF RFC 1951 / RFC 1950 (zlib)
Műszaki specifikációk
| Konténer architektúra | Raw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum |
| Tömörítés | LZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding |
| Bájtsorrend | Little-Endian bit-packing order |
| Színterek | N/A (Data Compression Stream) |
| Csatornák és struktúra | Raw binary or text data stream |
| Max. méretek | Unbounded stream length |
| Átlátszóság | 100% bit-exact lossless data reproduction |
| Streaming és progresszív | Block-based bitstream supports arbitrary continuous byte streaming |
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 kilobájt | Legfeljebb 32 kilobájt | Legfeljebb 16 megabájt | Legfeljebb 2 gigabájt |
| Ellenőrzőösszeg mód | Adler-32 (a zlib burkolóban) | CRC-32 (a gzip burkolóban) | Nincs beépített adatfolyam | 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 sikertelen a „Z_DATA_ERROR: incorrect data check" hibaüzenettel.
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: Kerülje meg az Adler-32 ellenőrzést a nyers kitömörítéssel (raw inflate), vagy javítsa ki a File2File Deflate helyreállítóval.
Biztonsági elemzés és elemző (parser) támadási vektorok
A DEFLATE elemzőknek szigorúan ellenőrizniük kell a Huffman-fa felépítési kódjait, hogy megakadályozzák a határokon túli mutatóírásokat.
Ismert támadási vektorok
- Hiányos vagy túlírt dinamikus Huffman-fa bit-hosszúság táblák, 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.
- Puffertúlcsordulás érvénytelenítetlen csúszóablak távolságkódok esetén.
Védekező Legjobb Gyakorlatok:
Történeti háttér és mérföldkövek
Főbb előnyök
- A vitathatatlan globális szabvány: hardverekbe, operációs rendszerekbe és minden programozási futtatókörnyezetbe beépítve.
- Szabadalom- és jogdíjmentes kialakítás, amely nyílt hozzáférést biztosít az egész számítástechnikai iparág számára.
- Gyors kitömörítés minimális memóriahasználattal (csak 32 KB-os csúszóablak-memóriát 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 adatfolyamok zlib- vagy gzip-burkolók nélkül hiányolják az önleíró metaadatokat vagy tárolókeretezést.
É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 Föld minden egyes PNG-képe a DEFLATE-et használja az IDAT képpontdarabjainak 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 látja el a DEFLATE-et (RFC 1950). A Gzip fájlmetaadatokkal és CRC-32 ellenőrzőösszeggel csomagolja be 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 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 nyers DEFLATE vagy zlib bájtdatainkat eredeti, tömörítetlen fájlokká alakíthatja közvetlenül a webböngészőjében a File2File.app segítségével.
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.