Archive BZIP2 (.bz2)

Norme Standard

Bzip2 (BZ2) est un utilitaire de compression et un format de fichier Unix classique sans brevet créé par Julian Seward, utilisant la transformée de Burrows-Wheeler pour obtenir une compression nettement plus efficace que le Gzip classique.

Inspection et métadonnées

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers BZ2 en inspectant leur séquence initiale d'octets binaires :

Sélectionnez ou déposez des fichiers ici

Privé - les fichiers ne quittent jamais votre appareil

ou coller Ctrl+V
Garantie de confidentialité sans transmission réseau : 0 octet envoyé vers des serveurs externes. Tout le traitement a eu lieu localement dans le bac à sable de votre navigateur.

Signature d'en-tête au niveau des octets (octets magiques)

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers BZ2 en inspectant leur séquence initiale d'octets binaires :

SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :

42 5A 68

REPRÉSENTATION ASCII : BZh

Normalisation : Norme open source Bzip2

Spécifications techniques

Architecture de conteneurEn-tête de flux ('BZh' + chiffre de taille de bloc 1-9) suivi de blocs de données compressés et d'un CRC 32 bits
CompressionTransformée de Burrows-Wheeler (BWT), transformée Move-to-Front (MTF) et codage de Huffman
Ordre des octetsCadrage de flux de bits en gros-boutiste
Espaces colorimétriquesN/A (Flux de compression d'octets)
Canaux et structureFlux d'octets compressé à fichier unique
Dimensions maximalesLongueur de flux illimitée (prend en charge des tailles de fichiers arbitraires)
TransparencePréservation des données sans perte, à l’identique au bit près
Prise en charge du traitement en continuDiffusion séquentielle, bloc par bloc, avec somme de contrôle CRC indépendante pour chaque bloc

Matrice de comparaison technique : BZ2 face aux concurrents

Attribut techniqueBZ2 (Actuel)GZXZZSTD
Algorithme de baseTransformée de Burrows-Wheeler (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Entropie d'état fini + LZ77
Compression par rapport à GzipFichiers de 10 à 20 % plus petits qu’avec GzipNorme de référenceFichiers de 20 à 30 % plus petits qu’avec GzipFichiers de 10 à 20 % plus petits qu’avec Gzip
Vitesse de décompressionLente (~30-50 Mo/s)Très rapide (>300 Mo/s)Modérée (~100 Mo/s)Fulgurante (>1,5 Go/s)
Sommes de contrôle de blocsCRC 32 bits par blocCRC32 de flux uniqueCRC64 de fluxxxHash64 de flux

Modes de corruption courants et guide de restauration hexadécimale

L'extraction s'arrête avec le message 'bzip2: Data integrity error when decompressing'.

Cause initiale: Un bit inversé dans le bloc compressé provoque l'échec de la validation CRC32 de la matrice de permutation inverse BWT.

Récupération: Utilisez l'utilitaire 'bzip2recover' pour récupérer les blocs non endommagés entourant le secteur corrompu.

Analyse de sécurité et vecteurs d'attaque de l'analyseur

Les implémentations de Bzip2 reposent sur un tri complexe des flux de bits et l'analyse de tables de Huffman, qui ont par le passé été affectés par des failles de dépassement d'entier.

Vecteurs d’attaque connus

  • Dépassement d'entier dans l'allocation du tableau de tri BWT (ex. CVE-2016-3189).
  • Écriture hors limites lors de l'assemblage de la table de décodage de Huffman.
  • Déni de service par des motifs d'entrée pathologiques provoquant des temps de tri BWT quadratiques dans le pire des cas.

Bonnes pratiques de défense: Décodez les fichiers BZ2 à l'aide de décodeurs WASM à mémoire sécurisée qui imposent des limites de mémoire.

Origines historiques et jalons

2019Federico Mena Quintero modernise la maintenance de la base de code bzip2 dans le cadre des initiatives open-source bzip3 et modernes.
2000Sortie de la version 1.0, stabilisant le format bzip2 dans les distributions Linux et les gestionnaires de paquets.
1996Julian Seward publie bzip2 0.15 pour remplacer le format bzip précédent qui posait des problèmes de brevets.

Principaux avantages

  • Surpasse systématiquement le Gzip classique de 10 % à 20 % sur les archives de code source, les journaux système et les bases de données textuelles.
  • L'architecture de blocs indépendants (100 000 à 900 000 octets) comprend des sommes de contrôle CRC 32 bits par bloc pour une vérification robuste de l'intégrité.
  • Disponible nativement dans de nombreuses distributions Linux, BSD et macOS; sa présence varie selon la distribution.

Limites techniques

  • Vitesses de compression et de décompression nettement plus lentes que celles des algorithmes modernes tels que Zstandard.
  • Compression à fichier unique uniquement : nécessite d’être associé à TAR (.tar.bz2) pour regrouper plusieurs fichiers ou répertoires.
  • Utilisation du processeur plus élevée lors de la décompression qu'avec Gzip ou Zstd.

Faits intéressants

  • Les octets magiques 'BZh' signifient 'Burrows-Wheeler Zip Huffman', suivis d'un chiffre ('1' à '9') indiquant la taille du bloc en centaines de kilooctets (ex. 'BZh9' = 900 Ko).
  • Le code source du noyau Linux a été distribué exclusivement au format .tar.bz2 pendant plus d'une décennie avant de migrer vers .xz.
  • La transformée de Burrows-Wheeler ne compresse pas directement les données ; elle permute l'ordre des caractères de sorte que les lettres identiques se regroupent.

Foire aux questions techniques

Quelle est la différence entre .gz et .bz2 ?

.bz2 utilise la transformée de Burrows-Wheeler pour produire des fichiers plus petits que .gz, mais sa compression et sa décompression prennent plus de temps.

Pourquoi bzip2 possède-t-il une commande 'bzip2recover' ?

Parce que bzip2 compresse les données en blocs indépendants de 900 Ko, chacun ayant son propre CRC, bzip2recover peut extraire des blocs non endommagés même si une partie du fichier est corrompue.

Comment puis-je extraire un fichier .tar.bz2 ?

Vous pouvez décompresser les fichiers .tar.bz2 directement dans votre navigateur web avec File2File.app sans exécuter d'outils en ligne de commande.