BZIP2-arkiv (.bz2)

Bzip2 Standard

Bzip2 (BZ2) er et klassisk, patentfritt Unix-komprimeringsverktøy og filformat som ble laget av Julian Seward. Det bruker Burrows-Wheeler-transformasjonen for å oppnå betydelig bedre komprimering enn klassisk Gzip.

Inspeksjon og metadata

Operativsystemer og filanalysatorer identifiserer BZ2-filer ved å undersøke den innledende binære bytesekvensen:

Velg eller slipp filer her

Privat - filer forlater aldri enheten din

eller lim inn Ctrl+V
Personverngaranti uten nettverksoverføring: 0 byte ble lastet opp til eksterne servere. All behandling foregikk lokalt i det isolerte nettlesermiljøet ditt.

Filsignatur på bytenivå (magiske byte)

Operativsystemer og filanalysatorer identifiserer BZ2-filer ved å undersøke den innledende binære bytesekvensen:

HEX-SIGNATUR (OFFSET 0):

42 5A 68

ASCII-REPRESENTASJON: BZh

Standardisering: Bzip2 Open Source Standard

Tekniske spesifikasjoner

BeholderarkitekturStrømheader («BZh» + ett siffer for blokkstørrelsen fra 1 til 9), etterfulgt av komprimerte datablokker og en 32-bits CRC-sjekksum
KomprimeringBurrows-Wheeler-transformasjon (BWT), Move-to-Front-transformasjon (MTF) og Huffman-koding
BytterekkefølgeBig-endian-innramming av bitstrøm
FargeromIkke relevant (bytekomprimeringsstrøm)
Kanaler og strukturKomprimert byte-strøm for én fil
Maks. dimensjonerUbegrenset strømlengde (støtter filer av vilkårlig størrelse)
GjennomsiktighetTapsfri databevaring med nøyaktig samsvar på bitnivå
Strømming og progressiv visningSekvensiell strømming blokk for blokk med uavhengige CRC-sjekksummer for hver blokk

Teknisk sammenligningsmatrise: BZ2 sammenlignet med konkurrenter

Teknisk attributtBZ2 (Gjeldende)GZXZZSTD
KjernealgoritmeBurrows-Wheeler-transformat (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Endeligtilstands-entropi + LZ77
Kompresjon vs Gzip10 % - 20 % mindre enn GzipBasisstandard20 % - 30 % mindre enn Gzip10 % - 20 % mindre enn Gzip
DekomprimeringsfartTreg (~30-50 MB/s)Rask (~300 MB/s)Moderat (~100 MB/s)Lynrask (>1,5 GB/s)
Blokksjekksummer32-bits CRC per blokkEnkeltstrøms-CRC32Strøms-CRC64Strøms-xxHash64

Vanlige korrupsjonsmoduser og heksadesimal gjenopprettingsveiledning

Utpakkingen avbrytes med 'bzip2: Data integrity error when decompressing'.

Underliggende årsak: En invertert bit i en komprimert blokk gjør at BWTs inverse permutasjonsmatrise ikke består CRC32-valideringen.

Utbedring: Bruk verktøyet 'bzip2recover' for å berge uskadde blokker rundt den korrupte sektoren.

Sikkerhetsanalyse og angrepsvektorer mot parsere

Bzip2-implementasjoner innebærer kompleks bitstrømsortering og Huffman-tabelltolking, som historisk har vært utsatt for heltallsoverløp.

Kjente angrepsvektorer

  • Heltallsoverløp ved allokering av BWT-sorteringsmatrisen (f.eks. CVE-2016-3189).
  • Skriving utenfor grensene under oppbygging av Huffman-dekodingstabellen.
  • Tjenestenekt (DoS) gjennom patologiske inndatamønstre som forårsaker kvadratisk BWT-sorteringstid i verste fall.

Anbefalte sikkerhetstiltak: Dekod BZ2-filer ved hjelp av minnesikre WASM-dekodere med håndhevede minnegrenser.

Historisk opprinnelse og milepæler

2019Federico Mena Quintero moderniserer vedlikeholdet av bzip2-kodebasen gjennom bzip3 og moderne åpen kildekode-initiativer.
2000Versjon 1.0 blir utgitt, noe som stabiliserer bzip2-formatet på tvers av Linux-distribusjoner og pakkebehandlere.
1996Julian Seward gir ut bzip2 0.15 for å erstatte det tidligere bzip-formatet, som hadde patentproblemer.

Viktige fordeler

  • Gir konsekvent 10 % til 20 % bedre resultater enn klassisk Gzip på kildekode-tarballer, systemlogger og tekstdatabaser.
  • Uavhengig blokkarkitektur (100k til 900k) inkluderer 32-bits CRC-sjekksum per blokk for robust integritetskontroll.
  • Tilgjengelig som standard i mange Linux-, BSD- og macOS-distribusjoner; inkluderingen varierer mellom distribusjoner.

Tekniske begrensninger og ulemper

  • Merkbart tregere komprimerings- og dekomprimeringshastighet sammenlignet med moderne algoritmer som Zstandard.
  • Bare komprimering av enkeltfiler: krever at det kombineres med TAR (.tar.bz2) for å pakke flere filer eller mapper.
  • Høyere CPU-bruk under dekomprimering enn med Gzip eller Zstd.

Interessante tekniske fakta

  • De magiske bytene «BZh» står for «Burrows-Wheeler Zip Huffman», etterfulgt av ett siffer («1» til «9») som angir blokkstørrelsen i hundrevis av kilobyte (f.eks. «BZh9» = 900 KB).
  • Kildekoden til Linux-kjernen ble distribuert utelukkende i .tar.bz2-format i over et tiår før den gikk over til .xz.
  • Burrows-Wheeler-transformasjonen komprimerer ikke data direkte; den permuterer rekkefølgen på tegn slik at identiske bokstaver samles.

Ofte stilte tekniske spørsmål

Hva er forskjellen mellom .gz og .bz2?

.bz2 bruker Burrows-Wheeler-transformasjonen for å oppnå mindre filstørrelser enn .gz, men det tar lengre tid å komprimere og dekomprimere.

Hvorfor har bzip2 en «bzip2recover»-kommando?

Fordi bzip2 komprimerer data i uavhengige blokker på 900 KB, hver med sin egen CRC, kan bzip2recover hente ut uskadede blokker selv om deler av filen er korrupte.

Hvordan kan jeg pakke ut en .tar.bz2-fil?

Du kan pakke ut .tar.bz2-filer direkte i nettleseren din med File2File.app uten å kjøre kommandolinjeverktøy.