Raw DEFLATE (.deflate)

IETF Štandard

DEFLATE je najrozšírenejší algoritmus bezstratovej kompresie dát v histórii výpočtovej techniky, ktorý už viac ako tri desaťročia poháňa archívy ZIP, prúdy GZIP, obrázky PNG a webovú kompresiu HTTP.

Konvertovať GZIP do DEFLATE

Bezplatný konvertor z GZIP do DEFLATE priamo v prehliadači. Konvertujte súbory okamžite vo svojom zariadení.

Preskúmať a metadáta

Operačné systémy a analyzátory súborov identifikujú súbory DEFLATE kontrolou počiatočnej binárnej bajtovej sekvencie:

Vyberte alebo presuňte súbory sem

100 % súkromná konverzia v prehliadači - súbory nikdy neopustia vaše zariadenie

alebo prilepiť Ctrl+V
Záruka súkromia s nulovým prenosom do siete: 0 bajtov odovzdaných na externé servery. Všetko spracovanie prebehlo lokálne v pieskovisku vášho prehliadača.

Podpis hlavičky na úrovni bajtov (Magic Bytes)

Operačné systémy a analyzátory súborov identifikujú súbory DEFLATE kontrolou počiatočnej binárnej bajtovej sekvencie:

HEXADECIMÁLNY PODPIS (OFFSET 0):

78 9C / 78 01 / 78 DA

ASCII REPREZENTÁCIA: xœ / x. / xÚ

Štandardizácia: IETF RFC 1951 / RFC 1950 (zlib)

Technické špecifikácie

Architektúra kontajneraRaw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum
KompresiaLZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding
Poradie bajtov (Endianness)Little-Endian bit-packing order
Farebné priestoryN/A (Data Compression Stream)
Kanály a štruktúraRaw binary or text data stream
Max. rozmeryUnbounded stream length
Priehľadnosť100% bit-exact lossless data reproduction
Streamovanie a postupné načítavanieBlock-based bitstream supports arbitrary continuous byte streaming

Technická porovnávacia matica: DEFLATE vs konkurenti

Technický atribútDEFLATE (Aktuálne)GZBROTLIZSTD
ŠtandardizáciaIETF RFC 1951 (Surový) / RFC 1950 (zlib)IETF RFC 1952 (Gzip)IETF RFC 7932 (Brotli)IETF RFC 8878 (Zstandard)
Posuvné oknoMaximálne 32 kilobajtovMaximálne 32 kilobajtovAž 16 megabajtovAž 2 gigabajty
Režim kontrolného súčtuAdler-32 (v obale zlib)CRC-32 (v obale gzip)Žiadny vstavaný prúdxxHash64 (64-bitový rýchly hash)
Každodenné použitieObrázky PNG, prúdy PDF, ZIPUnix .tar.gz, HTTP gzipWebové fonty (WOFF2), HTTP brJadro Linuxu, databázy, hranie hier

Bežné režimy poškodenia a príručka na obnovu v hexadecimálnom kóde

Dekompresia zlyhá s hlásením „Z_DATA_ERROR: incorrect data check".

Hlavná príčina: Nesúlad v 4-bajtovom kontrolnom súčte Adler-32 na konci prúdu zabaleného v knižnici zlib.

Obnova: Obíďte overenie Adler-32 použitím surovej dekompresie (raw inflate) alebo opravte pomocou nástroja File2File Deflate Recovery.

Bezpečnostná analýza a vektory útokov na parser

Analyzátory DEFLATE musia prísne overovať kódy na konštrukciu Huffmanovho stromu, aby sa predišlo zápisom mimo vyhradenú pamäť pomocou ukazovateľov.

Známe vektory útokov

  • Neúplné alebo preťažené tabuľky dĺžok bitov dynamického Huffmanovho stromu spôsobujúce neplatné čítanie pamäte.
  • Dekompresná bomba (zip bomb), ktorá rozbalí malé užitočné zaťaženie na stovky gigabajtov pamäte RAM.
  • Prečítanie nad rámec vyhradenej vyrovnávacej pamäte v neoverených kódoch vzdialenosti posuvného okna.

Najlepšie obranné postupy:

Historický pôvod a míľniky

1996Peter Deutsch formalizuje DEFLATE ako IETF RFC 1951 a zlib ako RFC 1950.
1995Jean-loup Gailly a Mark Adler vydávajú knižnicu zlib, univerzálnu referenčnú knižnicu v jazyku C pre formát DEFLATE.
1991Phil Katz vynachádza DEFLATE pre PKZIP 2.0 ako náhradu za staršie algoritmy Implode a Reduce.

Kľúčové výhody a prednosti

  • Nespochybniteľný globálny štandard: implementovaný v hardvéri, operačných systémoch a každom programovacom prostredí.
  • Dizajn bez licenčných poplatkov a patentov zaručuje otvorený prístup v celom odvetví výpočtovej techniky.
  • Rýchla dekompresia s minimálnou náročnosťou na pamäť (vyžaduje si iba 32 KB pamäte posuvného okna).

Technické obmedzenia a nevýhody

  • Posuvné okno je obmedzené na 32 KB, čo znižuje účinnosť kompresie pri veľkých súboroch so vzdialenými redundanciami.
  • Nižší kompresný pomer pri moderných webových dátach v porovnaní s novšími algoritmami, ako sú Brotli a Zstandard.
  • Surové prúdy DEFLATE neobsahujú samopopisné metadáta ani kontajnerové rámovanie bez obalov zlib alebo gzip.

Zaujímavé technické drobnosti

  • Phil Katz vynájde DEFLATE po tom, čo ho spoločnosť Unisys zažalovala kvôli patentovanému algoritmom LZW používanému v skorších nástrojoch PKARC.
  • Štandardné hlavičkové bajty zlib „78 9C" označujú predvolenú kompresiu, „78 01" nízku kompresiu a „78 DA" maximálnu kompresiu.
  • Každý obrázok PNG na svete používa DEFLATE na kompresiu svojich pixelových blokov IDAT.

Často kladené technické otázky

Aký je rozdiel medzi algoritmom DEFLATE, knižnicou zlib a gzip?

DEFLATE je surový kompresný algoritmus (RFC 1951). Zlib obaľuje DEFLATE 2-bajtovou hlavičkou a kontrolným súčtom Adler-32 (RFC 1950). Gzip obaľuje DEFLATE metadátami súboru a kontrolným súčtom CRC-32 (RFC 1952).

Prečo formát PNG používa kompresiu DEFLATE?

Formát PNG bol vytvorený v roku 1995 ako náhrada za GIF bez použitia patentovaných algoritmov LZW, pričom pre kompresiu zvolil otvorený a licenčne voľný algoritmus DEFLATE.

Ako môžem dekomprimovať surový súbor .deflate?

Surové bajtové prúdy DEFLATE alebo zlib môžete dekomprimovať do pôvodných nekomprimovaných súborov pomocou aplikácie File2File.app priamo vo webovom prehliadači.