DEFLATE brut (.deflate)
IETF StandardDEFLATE est l'algorithme de compression de données sans perte largement utilisé de l'histoire de l'informatique. Il est utilisé dans les archives ZIP, les flux GZIP, les images PNG et la compression HTTP depuis plus de trois décennies.
Convertir GZIP en DEFLATE
Outil de conversion gratuit de GZIP vers DEFLATE dans le navigateur. Convertissez des fichiers instantanément sur votre appareil.
Inspection et métadonnées
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers DEFLATE en inspectant leur séquence initiale d'octets binaires :
Signature d'en-tête au niveau des octets (octets magiques)
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers DEFLATE en inspectant leur séquence initiale d'octets binaires :
SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :
Le DEFLATE brut n’a pas de signature fixeREPRÉSENTATION ASCII : Aucune signature fixe
Normalisation : IETF RFC 1951 / RFC 1950 (zlib)
Spécifications techniques
| Architecture de conteneur | Flux de bits brut RFC 1951 ou flux enveloppé zlib RFC 1950 avec en-tête de 2 octets et somme de contrôle Adler-32 |
| Compression | Dictionnaire glissant LZ77 (fenêtre jusqu'à 32 Ko) combiné avec un codage d'entropie de Huffman dynamique/statique |
| Ordre des octets | Ordre d'empaquetage des bits en petit-boutiste |
| Espaces colorimétriques | N/A (Flux de compression de données) |
| Canaux et structure | Flux de données binaires ou textuelles brutes |
| Dimensions maximales | Longueur de flux illimitée |
| Transparence | Reproduction des données sans perte, exacte à 100 % au niveau des bits |
| Prise en charge du traitement en continu | Le flux de bits organisé en blocs prend en charge la diffusion continue d’octets. |
Matrice de comparaison technique : DEFLATE face aux concurrents
| Attribut technique | DEFLATE (Actuel) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Standardisation | IETF RFC 1951 (brut) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Fenêtre glissante | 32 kilooctets max | 32 kilooctets max | Jusqu'à 16 mégaoctets | Jusqu'à 2 gigaoctets |
| Mode de somme de contrôle | Adler-32 (dans l’enveloppe zlib) | CRC-32 (dans l’enveloppe gzip) | Aucune somme de contrôle intégrée au flux | xxHash64 (hachage rapide 64 bits) |
| Utilisation quotidienne | Images PNG, flux PDF, ZIP | .tar.gz sous Unix, gzip sur HTTP | Polices web (WOFF2), br sur HTTP | Noyau Linux, bases de données, jeux |
Modes de corruption courants et guide de restauration hexadécimale
La décompression échoue avec le message 'Z_DATA_ERROR: incorrect data check'.
Cause initiale: Somme de contrôle Adler-32 incorrecte (4 octets) en fin de flux zlib.
Récupération: Contournez la vérification Adler-32 en décompressant le flux brut (inflate) ou réparez le fichier avec l’outil de récupération Deflate de File2File.app.
Analyse de sécurité et vecteurs d'attaque de l'analyseur
Les analyseurs DEFLATE doivent valider strictement les codes de construction d'arbres de Huffman pour empêcher les écritures de pointeurs hors limites.
Vecteurs d’attaque connus
- Tables de longueurs de code en bits des arbres de Huffman dynamiques, incomplètes ou surchargées, provoquant des lectures mémoire invalides.
- Bombe de décompression (bombe ZIP) qui déploie de minuscules charges utiles jusqu'à occuper des centaines de gigaoctets de mémoire vive.
- Sur-lecture de tampon dans des codes de distance de fenêtre glissante non validés.
Bonnes pratiques de défense: Limitez la mémoire allouée et le taux d’expansion lors de la décompression.
Origines historiques et jalons
Principaux avantages
- La norme mondiale incontestée : intégrée au matériel et aux systèmes d'exploitation, et prise en charge par tous les environnements d'exécution des langages de programmation.
- Conception sans brevet et sans redevance garantissant un accès ouvert dans toute l'industrie informatique.
- Décompression rapide avec un encombrement mémoire minimal (nécessite uniquement une mémoire de fenêtre glissante de 32 Ko).
Limites techniques
- Fenêtre glissante limitée à 32 Ko, réduisant l'efficacité de la compression sur les fichiers volumineux présentant des redondances distantes.
- Taux de compression inférieurs sur les ressources web modernes par rapport aux algorithmes plus récents comme Brotli et Zstandard.
- Les flux DEFLATE bruts ne comportent ni métadonnées descriptives ni structure de conteneur sans enveloppe zlib ou gzip.
Faits intéressants
- Phil Katz a inventé DEFLATE après avoir été poursuivi en justice par Unisys concernant l'algorithme breveté LZW utilisé dans les premiers utilitaires PKARC.
- Les octets d'en-tête zlib standard '78 9C' indiquent une compression par défaut, '78 01' une compression faible et '78 DA' une compression maximale.
- Chaque image PNG sur Terre utilise DEFLATE pour compresser ses blocs de pixels IDAT.
Foire aux questions techniques
Quelle est la différence entre DEFLATE, zlib et gzip ?
DEFLATE est l’algorithme de compression brut (RFC 1951). L’enveloppe zlib ajoute un en-tête de 2 octets et une somme de contrôle Adler-32 (RFC 1950). L’enveloppe gzip ajoute des métadonnées de fichier et une somme de contrôle CRC-32 (RFC 1952).
Pourquoi PNG utilise-t-il DEFLATE ?
Le format PNG a été créé en 1995 pour remplacer GIF sans recourir aux algorithmes LZW brevetés ; DEFLATE, libre de droits, a été choisi pour la compression.
Comment puis-je décompresser un fichier .deflate brut ?
Vous pouvez décompresser des flux d'octets DEFLATE ou zlib bruts et obtenir les fichiers d'origine non compressés à l'aide de File2File.app, directement dans votre navigateur web.
Conversions associées à DEFLATE
La conversion d'un flux GZIP en DEFLATE brut supprime l'enveloppe de fichier extérieure et les métadonnées d'en-tête, ne laissant que la charge utile compressée pour les protocoles réseau spécialisés et les archives de bas niveau.
La conversion de données DEFLATE brutes en flux GZIP encapsule la charge utile compressée dans un conteneur standard muni d'en-têtes de métadonnées afin que les systèmes d'exploitation et les outils web puissent la lire correctement.