BZIP2-arkiv (.bz2)

Bzip2 Standard

Bzip2 (BZ2) är ett klassiskt, patentfritt komprimeringsverktyg och filformat för Unix, skapat av Julian Seward. Det använder Burrows-Wheeler-transformen för att uppnå avsevärt effektivare komprimering än klassiska Gzip.

Granska & Metadata

Operativsystem och filanalysverktyg identifierar BZ2-filer genom att granska den inledande binära bytesekvensen:

Välj eller släpp filer här

100 % privat konvertering i webbläsaren - filer lämnar aldrig din enhet

eller klistra in Ctrl+V
Integritetsgaranti utan nätverksöverföring: 0 byte laddas upp till externa servrar. All bearbetning sker lokalt i webbläsarens sandlåda.

Signatur för filhuvud på bytenivå (Magic Bytes)

Operativsystem och filanalysverktyg identifierar BZ2-filer genom att granska den inledande binära bytesekvensen:

HEX-SIGNATUR (OFFSET 0):

42 5A 68

ASCII-REPRESENTATION: BZh

Standardisering: Bzip2 Open Source Standard

Tekniska specifikationer

ContainerarkitekturStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
KomprimeringBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
BytessordinningBig-Endian bitstream framing
FärgrymderN/A (Byte Compression Stream)
Kanaler och strukturSingle-file compressed byte stream
Maximala dimensionerUnbounded stream length (supports arbitrary file sizes)
Transparens100% bit-exact lossless data preservation
Strömning och progressivSequential block-by-block streaming with independent per-block CRC checksums

Teknisk jämförelsematris: BZ2 vs konkurrenter

Tekniskt attributBZ2 (Aktuell)GZXZZSTD
KärnalgoritmBurrows-Wheeler-transformering (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Finite State Entropy + LZ77
Komprimering vs Gzip10 % - 20 % mindre än GzipBaslinjestandar20 % - 30 % mindre än Gzip10 % - 20 % mindre än Gzip
DekomprimeringshastighetLångsam (~30-50 MB/s)Snabb (~300 MB/s)Måttlig (~100 MB/s)Blixtrande (>1,5 GB/s)
Blockkontrollsummor32-bitars CRC per blockEnkel ströms-CRC32Ströms-CRC64Ströms-xxHash64

Vanliga skadeorsaker och hex-återställningsguide

Extraktionen avbryts med 'bzip2: Data integrity error when decompressing'.

Grundorsak: Vänd bit i komprimerat block som gör att BWT:s inversa permutationsmatris misslyckas med CRC32-valideringen.

Återställning: Använd verktyget 'bzip2recover' för att rädda oskadade block som omger den skadade sektorn.

Säkerhetsanalys och attackvektorer för tolkar

Bzip2-implementeringar innefattar komplex bitströmssortering och parsning av Huffmancstabeller som historiskt sett har drabbats av heltalsspillsbrister.

Kända attackvektorer

  • Heltalsspill vid allokering av BWT-sorteringsmatris (t.ex. CVE-2016-3189).
  • Skrivning utanför gränserna vid sammansättning av Huffmandekoderingsstabeller.
  • Överbelastningsattack genom patologiska indatamönster som orsakar värsta fall av kvadratiska BWT-sorteringstider.

Rekommenderade skyddsåtgärder:

Historiskt ursprung och milstolpar

2019Federico Mena Quintero moderniserar underhållet av bzip2-kodbasen inom ramen för bzip3 och moderna initiativ med öppen källkod.
2000Version 1.0 släpps, vilket stabiliserar bzip2-formatet över Linux-distributioner och pakethanterare.
1996Julian Seward släpper bzip2 0.15 för att ersätta det tidigare bzip-formatet som var behäftat med patentproblem.

Viktiga fördelar

  • Överträffar konsekvent klassiska Gzip med 10 % till 20 % på källkodstollar, systemloggar och textdatabaser.
  • Oberoende blockarkitektur (100k till 900k) inkluderar 32-bitars CRC-kontrollsummor per block för robust integritetskontroll.
  • Universell, inbyggd tillgänglighet i alla Linux-, BSD- och macOS-kommandoradsdistributioner.

Tekniska begränsningar

  • Betydligt långsammare komprimerings- och dekomprimeringshastigheter jämfört med moderna algoritmer som Zstandard.
  • Endast enfilskomprimering: kräver sammanslagning med TAR (.tar.bz2) för att paketera flera filer eller kataloger.
  • Hög CPU-användning vid dekomprimering jämfört med Gzip eller Zstd.

Intressant teknisk kuriosa

  • Magiska byten 'BZh' står för 'Burrows-Wheeler Zip Huffman', följt av en siffra ('1' till '9') som anger storleken på blocket i hundratals kilobyte (t.ex. 'BZh9' = 900 KB).
  • Linux-kärnans källkod distribuerades uteslutande i .tar.bz2-format i över ett decennium innan den migrerades till .xz.
  • Burrows-Wheeler-transformen komprimerar inte data direkt; den permuterar ordningen på tecken så att identiska bokstäver klumpas ihop, vilket gör dem mycket enkla att komprimera med Huffman-kodning.

Vanliga tekniska frågor

Vad är skillnaden mellan .gz och .bz2?

.bz2 använder Burrows-Wheeler-transformen för att uppnå mindre filstorlekar än .gz, men det tar längre tid att komprimera och dekomprimera.

Varför har bzip2 ett 'bzip2recover'-kommando?

Eftersom bzip2 komprimerar data i oberoende block på 900 KB, var och en med sin egen CRC, kan bzip2recover extrahera oskadade block även om en del av filen är skadad.

Hur kan jag extrahera en .tar.bz2-fil?

Du kan packa upp .tar.bz2-filer direkt i din webbläsare med File2File.app utan att köra kommandoradsverktyg.