DEFLATE raw (.deflate)
IETF StandardDEFLATE è uno degli algoritmi di compressione senza perdita più diffusi nella storia dell’informatica. È alla base degli archivi ZIP, dei flussi GZIP, delle immagini PNG e della compressione HTTP sul web da oltre trent’anni.
Converti da GZIP a DEFLATE
Convertitore gratuito da GZIP a DEFLATE nel browser. Converti i file istantaneamente sul tuo dispositivo.
Ispezione e metadati
I sistemi operativi e gli analizzatori di file identificano i file DEFLATE ispezionando la sequenza di byte binari iniziale:
Firma dell'intestazione a livello di byte (Magic Bytes)
I sistemi operativi e gli analizzatori di file identificano i file DEFLATE ispezionando la sequenza di byte binari iniziale:
FIRMA ESADECIMALE (OFFSET 0):
DEFLATE grezzo non ha una firma fissa; i flussi con wrapper zlib iniziano con byte CMF/FLG variabiliRAPPRESENTAZIONE ASCII: Nessuna firma fissa
Standardizzazione: IETF RFC 1951 / RFC 1950 (zlib)
Specifiche tecniche
| Architettura del contenitore | Flusso di bit RFC 1951 grezzo o flusso con wrapper zlib RFC 1950, con intestazione di 2 byte e checksum Adler-32 |
| Compressione | Dizionario scorrevole LZ77 (finestra fino a 32 KB) combinato con codifica entropica di Huffman dinamica/statica |
| Endianness dei byte | Ordine di impacchettamento dei bit little-endian |
| Spazi colore | N/A (Flusso di Compressione Dati) |
| Canali e struttura | Flusso di dati binari o di testo grezzi |
| Dimensioni massime | Lunghezza del flusso illimitata |
| Trasparenza | Conservazione dei dati senza perdita, identica bit per bit |
| Streaming e progressivo | Il flusso di bit basato su blocchi supporta lo streaming continuo e arbitrario di byte |
Matrice di confronto tecnico: DEFLATE vs Concorrenti
| Attributo tecnico | DEFLATE (Attuale) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Standardizzazione | IETF RFC 1951 (Grezzo) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Finestra scorrevole | Massimo 32 Kilobyte | Massimo 32 Kilobyte | Fino a 16 Megabyte | Fino a 2 Gigabyte |
| Modalità checksum | Adler-32 (nel wrapper zlib) | CRC-32 (nel wrapper gzip) | Nessun checksum integrato nel flusso | xxHash64 (hash rapido a 64 bit) |
| Utilizzo quotidiano | Immagini PNG, flussi PDF, ZIP | Unix .tar.gz, HTTP gzip | Font web (WOFF2), HTTP br | Kernel Linux, database, videogiochi |
Modalità di corruzione comuni e guida al recupero esadecimale
La decompressione fallisce con 'Z_DATA_ERROR: incorrect data check'.
Causa principale: Discrepanza nel checksum Adler-32 a 4 byte alla fine dello stream con wrapper zlib.
Ripristino: Bypassare la verifica Adler-32 utilizzando l'inflate grezzo o riparare con il recupero Deflate di File2File.app.
Analisi di sicurezza e vettori di attacco del parser
I parser DEFLATE devono convalidare rigorosamente i codici di costruzione dell'albero di Huffman per prevenire scritture di puntatori fuori dai limiti.
Vettori di attacco noti
- Tabelle delle lunghezze in bit dell'albero di Huffman dinamico incomplete o con un numero eccessivo di codici, che causano letture di memoria non valide.
- Bomba di decompressione che espande payload minuscoli fino a centinaia di gigabyte di memoria RAM.
- Sovrallettura del buffer (buffer over-read) durante l'analisi di codici di distanza della finestra scorrevole non validati.
Migliori pratiche difensive: Imporre limiti rigorosi alla quantità massima di memoria allocata e al rapporto di espansione durante la decompressione.
Origini storiche e tappe fondamentali
Vantaggi principali
- Lo standard globale indiscusso: implementato in hardware, sistemi operativi e in ogni runtime di programmazione.
- Progettazione senza brevetti né royalty, che garantisce libero accesso in tutto il settore informatico.
- Decompressione rapida con un impatto minimo sulla memoria (richiede solo 32 KB di memoria per la finestra scorrevole).
Limiti tecnici e svantaggi
- Finestra scorrevole limitata a 32 KB, che riduce l'efficacia della compressione su file di grandi dimensioni con ridondanze distanti.
- Rapporti di compressione inferiori sulle risorse web moderne rispetto ad algoritmi più recenti come Brotli e Zstandard.
- I flussi DEFLATE grezzi mancano di metadati descrittivi o di incapsulamento nel contenitore senza i wrapper zlib o gzip.
Curiosità tecniche
- Phil Katz inventò DEFLATE dopo essere stato citato in giudizio da Unisys per l'algoritmo brevettato LZW utilizzato nelle prime utilità PKARC.
- I byte di intestazione standard zlib '78 9C' indicano la compressione predefinita, '78 01' la compressione bassa e '78 DA' la compressione massima.
- Ogni immagine PNG sulla Terra utilizza DEFLATE per comprimere i suoi blocchi di pixel IDAT.
Domande tecniche frequenti
Qual è la differenza tra DEFLATE, zlib e gzip?
DEFLATE è l'algoritmo di compressione grezzo (RFC 1951). Zlib racchiude DEFLATE con un'intestazione di 2 byte e un checksum Adler-32 (RFC 1950). Gzip racchiude DEFLATE con metadati del file e un checksum CRC-32 (RFC 1952).
Perché PNG utilizza DEFLATE?
Il formato PNG è stato creato nel 1995 per sostituire GIF senza utilizzare algoritmi LZW brevettati, scegliendo DEFLATE, aperto e senza royalty, per la compressione.
Come posso decomprimere un file .deflate grezzo?
Puoi decomprimere flussi di byte DEFLATE grezzi o zlib nei file originali non compressi utilizzando File2File.app direttamente nel tuo browser web.
Coppie di conversione per DEFLATE correlate
La conversione di un flusso GZIP in DEFLATE grezzo rimuove il contenitore di file esterno e i metadati dell'intestazione, lasciando solo il carico utile compresso per protocolli di rete specializzati e archivi di basso livello.
La conversione di DEFLATE grezzo in flusso GZIP racchiude il payload compresso all'interno di un contenitore standard con intestazioni di metadati in modo che i sistemi operativi e gli strumenti web possano leggerlo correttamente.