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 serrée que le Gzip classique.

Inspecter et métadonnées

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers BZ2 en inspectant la séquence d'octets binaires de tête :

Sélectionnez ou déposez des fichiers ici

Conversion 100 % privée dans le navigateur - les fichiers ne quittent jamais votre appareil

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

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

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers BZ2 en inspectant la séquence d'octets binaires de tête :

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
Boutisme des octetsCadrage de flux de bits en grand-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 100 % exacte au niveau des bits
Streaming et progressifStreaming séquentiel bloc par bloc avec sommes de contrôle CRC indépendantes par bloc

Matrice de comparaison technique : BZ2 vs Concurrents

Attribut techniqueBZ2 (Actuel)GZXZZSTD
Algorithme de baseTransformée de Burrows-Wheeler (BWT)Dégonfler (LZ77 + Huffman)LZMA / LZMA2Entropie d'état fini + LZ77
Compression vs Gzip10 % à 20 % plus petit que GzipNorme de référence20 % à 30 % plus petit que Gzip10 % à 20 % plus petit que Gzip
Vitesse de décompressionLente (~30-50 Mo/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 récupération hexadécimale

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

Cause racine: Bit inversé dans le bloc compressé provoquant 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 impliquent un tri de flux de bits complexe et une analyse de tables de Huffman qui ont historiquement connu 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 sécurisés en mémoire avec des limites de mémoire appliquées.

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 (100k à 900k) comprend des sommes de contrôle CRC 32 bits par bloc pour une vérification robuste de l'intégrité.
  • Disponibilité native universelle sur toutes les distributions en ligne de commande Linux, BSD et macOS.

Limites techniques

  • Vitesses de compression et de décompression nettement plus lentes par rapport aux algorithmes modernes tels que Zstandard.
  • Compression à fichier unique uniquement : nécessite un appariement avec TAR (.tar.bz2) pour regrouper plusieurs fichiers ou répertoires.
  • Utilisation du processeur plus élevée lors de la décompression que Gzip ou Zstd.

Anecdotes techniques

  • 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, les rendant trivialement compressibles par le codage de Huffman.

Foire aux questions techniques

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

.bz2 utilise la transformée de Burrows-Wheeler pour obtenir des tailles de fichier plus petites 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.