BZIP2-arkiv (.bz2)

Bzip2-standard 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 och metadata

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

Välj eller släpp filer här

Privat - filer lämnar aldrig din enhet

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

Signatur i filhuvudet på bytenivå (magiska byte)

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

HEX-SIGNATUR (OFFSET 0):

42 5A 68

ASCII-REPRESENTATION: BZh

Standardisering: Bzip2-standard med öppen källkod

Tekniska specifikationer

ContainerarkitekturStrömhuvud ('BZh' + siffra 1-9 för blockstorlek), följt av komprimerade datablock och en 32-bitars CRC
KomprimeringBurrows-Wheeler-transformen (BWT), Move-to-Front-transformen (MTF) och Huffmankodning
ByteordningBig-endian-bitströmsinramning
FärgrymderInte tillämpligt (bytekomprimeringsström)
Kanaler och strukturKomprimerad byteström för en enda fil
Maximala dimensionerObegränsad strömlängd (stöder filer av godtycklig storlek)
Transparens100 % bitexakt, förlustfri databevaring
Strömning och progressiv visningSekventiell strömning block för block med oberoende CRC-kontrollsummor för varje block

Teknisk jämförelsematris: BZ2 jämfört med konkurrenter

Tekniskt attributBZ2 (Aktuell)GZXZZSTD
KärnalgoritmBurrows-Wheeler-transformering (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Finite State Entropy + LZ77
Komprimering jämfört med Gzip10-20 % mindre än med GzipBaslinjestandard20-30 % mindre än med Gzip10-20 % mindre än med Gzip
DekomprimeringshastighetLångsam (~30-50 MB/s)Snabb (~300 MB/s)Måttlig (~100 MB/s)Mycket snabb (>1,5 GB/s)
Blockkontrollsummor32-bitars CRC per blockCRC32 för en enda strömStröms-CRC64Ströms-xxHash64

Vanliga skadeorsaker och hex-återställningsguide

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

Grundorsak: Bit som slagits om 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-implementationer innefattar komplex sortering av bitströmmar och tolkning av Huffmantabeller, där det historiskt har förekommit fel med heltalsspill.

Kända attackvektorer

  • Heltalsspill vid allokering av BWT-sorteringsmatris (t.ex. CVE-2016-3189).
  • Skrivning utanför gränserna vid sammansättning av Huffmandekoderingsstabeller.
  • Tjänsteavbrott genom patologiska indatamönster som orsakar kvadratisk sorteringstid i värsta fall för BWT.

Rekommenderade skyddsåtgärder: Avkoda BZ2-filer med minnessäkra WASM-avkodare som tillämpar minnesgränser.

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ällkodspaket, systemloggar och textdatabaser.
  • Oberoende blockarkitektur (100k till 900k) inkluderar 32-bitars CRC-kontrollsummor per block för robust integritetskontroll.
  • Finns inbyggt i många Linux-, BSD- och macOS-distributioner; inkluderingen varierar mellan distributioner.

Tekniska begränsningar

  • Betydligt långsammare komprimerings- och dekomprimeringshastigheter jämfört med moderna algoritmer som Zstandard.
  • Endast enfilskomprimering: kräver att det kombineras 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

  • De 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.

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.