DEFLATE brut (.deflate)
IETF StandardDEFLATE este utilizat pe scară largă algoritm de compresie a datelor fără pierderi din istoria informaticii și stă la baza arhivelor ZIP, fluxurilor GZIP, imaginilor PNG și compresiei web HTTP de peste trei decenii.
Convertește din GZIP în DEFLATE
Convertor gratuit din GZIP în DEFLATE direct în browser. Convertește fișiere instantaneu pe dispozitivul tău.
Inspectare și metadate
Sistemele de operare și analizatoarele de fișiere identifică fișierele DEFLATE prin inspectarea secvenței binare inițiale:
Semnătura antetului la nivel de octet (octeți magici)
Sistemele de operare și analizatoarele de fișiere identifică fișierele DEFLATE prin inspectarea secvenței binare inițiale:
SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):
DEFLATE brut nu are o semnătură fixăREPREZENTARE ASCII: Fără semnătură fixă
Standardizare: IETF RFC 1951 / RFC 1950 (zlib)
Specificații tehnice
| Arhitectură container | Flux de biți RFC 1951 brut sau flux zlib RFC 1950 cu înveliș, antet pe 2 octeți și sumă de control Adler-32 |
| Compresie | Dicționar LZ77 cu fereastră glisantă (fereastră de până la 32 KB), împreună cu codare entropică Huffman dinamică sau statică |
| Ordinea octeților | Ordine Little-Endian de împachetare a biților |
| Spații de culoare | Nu se aplică (flux de compresie a datelor) |
| Canale și structură | Flux de date binare sau text |
| Dimensiuni maxime | Lungime nelimitată a fluxului |
| Transparență | Reproducere fără pierderi a datelor, identică la nivel de biți |
| Streaming și progresiv | Fluxul de biți bazat pe blocuri acceptă transmiterea continuă a octeților, fără limită |
Matrice de comparație tehnică: DEFLATE vs. concurenți
| Atribut tehnic | DEFLATE (Curent) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Standardizare | IETF RFC 1951 (brut) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Fereastră glisantă | Maximum 32 Kiloocteți | Maximum 32 Kiloocteți | Până la 16 megaocteți | Până la 2 gigaocteți |
| Mod sumă de control | Adler-32 (în formatul zlib) | CRC-32 (în formatul gzip) | Niciunul încorporat în flux | xxHash64 (hash rapid pe 64 de biți) |
| Utilizare zilnică | Imagini PNG, fluxuri PDF, ZIP | Unix .tar.gz, HTTP gzip | Fonturi web (WOFF2), HTTP br | Nucleu Linux, baze de date, jocuri |
Moduri comune de corupție și ghid de recuperare hexazecimală
Decompresia eșuează cu mesajul „Z_DATA_ERROR: incorrect data check".
Cauză principală: Neconcordanță în suma de control Adler-32 de 4 octeți de la sfârșitul fluxului încapsulat în zlib.
Recuperare: Ocolește verificarea Adler-32 folosind decomprimarea raw inflate sau repară fluxul cu File2File.app Deflate Recovery.
Analiză de securitate și vectori de atac asupra parserului
Analizoarele DEFLATE trebuie să valideze strict codurile de construcție a arborelui Huffman pentru a preveni scrierile cu pointeri în afara limitelor.
Vectori de atac cunoscuți
- Tabele de lungime de biți pentru arborele Huffman dinamic incomplete sau supraabonate, care cauzează citiri invalide de memorie.
- Bombă de decompresie (zip bomb) care extinde sarcini utile mici în sute de gigaocteți de RAM.
- Citire excesivă în buffer (buffer over-read) în codurile de distanță ale ferestrei glisante nevalidate.
Cele mai bune practici de securitate: Impune limite pentru alocarea maximă de memorie și pentru rata de extindere în timpul decomprimării.
Origini istorice și repere
Avantaje cheie și beneficii
- DEFLATE este implementat pe scară largă în biblioteci software și formate de fișiere, deși suportul disponibil depinde de mediul de execuție și de aplicație.
- Specificația DEFLATE poate fi implementată liber; licențierea și suportul depind de implementarea software concretă.
- Decompresie rapidă cu amprentă minimă de memorie (necesită doar o memorie cu fereastră glisantă de 32 KB).
Limitări tehnice și dezavantaje
- Fereastra glisantă este limitată la 32 KB, ceea ce reduce eficacitatea compresiei pe fișiere mari cu redundanțe îndepărtate.
- Rate de compresie mai scăzute pe activele web moderne în comparație cu algoritmii mai noi, precum Brotli și Zstandard.
- Fluxurile DEFLATE brute nu conțin metadate descriptive sau delimitare de container fără învelișurile zlib ori gzip.
Curiozități tehnice interesante
- Phil Katz a inventat DEFLATE după ce a fost dat în judecată de Unisys din cauza algoritmului patentat LZW utilizat în utilitarele PKARC timpurii.
- Octeții standard ai antetului zlib „78 9C” indică compresia implicită, „78 01" compresia redusă, iar „78 DA" compresia maximă.
- Formatul PNG folosește DEFLATE pentru fluxul de date al imaginii, conform specificației PNG.
Întrebări tehnice frecvente
Care este diferența dintre DEFLATE, zlib și gzip?
DEFLATE este algoritmul de compresie brut (RFC 1951). Zlib încapsulează DEFLATE cu un antet de 2 octeți și o sumă de control Adler-32 (RFC 1950). Gzip încapsulează DEFLATE cu metadate ale fișierului și o sumă de control CRC-32 (RFC 1952).
De ce folosește PNG algoritmul DEFLATE?
Formatul PNG a fost creat în 1995 pentru a înlocui GIF fără a utiliza algoritmi LZW brevetați, alegând pentru compresie algoritmul DEFLATE, cu sursă deschisă și fără redevențe.
Cum pot dezarhiva un fișier brut .deflate?
Poți decomprima fluxuri de octeți DEFLATE sau zlib brute în fișierele originale, necomprimate, cu File2File.app direct în browser.
Perechi de conversie DEFLATE conexe
Conversia unui flux GZIP în DEFLATE brut elimină învelișul exterior al fișierului și metadatele din antet, lăsând doar conținutul comprimat pentru protocoale de rețea specializate și arhive de nivel jos.
Conversia unui flux DEFLATE brut în flux GZIP împachetează sarcina utilă comprimată într-un container standard cu anteturi de metadate, astfel încât sistemele de operare și instrumentele web să o poată citi corect.