Archiv BZIP2 (.bz2)

Bzip2 Standardní

Bzip2 (BZ2) je klasický unixový kompresní nástroj a souborový formát, na který se nevztahují patenty, který vytvořil Julian Seward. Využívá Burrows-Wheelerovu transformaci k dosažení výrazně účinnější komprese než klasický Gzip.

Kontrola a metadata

Operační systémy a analyzátory souborů identifikují soubory BZ2 kontrolou počáteční binární sekvence bajtů:

Vyberte nebo přetáhněte soubory sem

Soukromě - soubory nikdy neopustí vaše zařízení

nebo vložte Ctrl+V
Záruka ochrany soukromí s nulovým přenosem po síti: 0 bajtů odesláno na externí servery. Veškeré zpracování probíhalo lokálně v sandboxu vašeho prohlížeče.

Podpis hlavičky na úrovni bajtů (Magic Bytes)

Operační systémy a analyzátory souborů identifikují soubory BZ2 kontrolou počáteční binární sekvence bajtů:

HEXADECIMÁLNÍ PODPIS (POSUN 0):

42 5A 68

ASCII REPREZENTACE: BZh

Standardizace: Bzip2 Open Source Standard

Technické specifikace

Architektura kontejneruHlavička proudu („BZh“ a číslice velikosti bloku od 1 do 9), za níž následují komprimované datové bloky a 32bitový kontrolní součet CRC
KompreseBurrowsova-Wheelerova transformace (BWT), transformace Move-to-Front (MTF) a Huffmanovo kódování
Pořadí bajtůBig-endian rámování bitového proudu
Barevné prostoryNevztahuje se (proud komprimovaných bajtů)
Kanály a strukturaJednosouborový komprimovaný bajtový proud
Max. rozměryNeomezená délka proudu (podporuje soubory libovolné velikosti)
Průhlednost100% bezztrátové zachování dat bit po bitu
Streamování a progresivní načítáníSekvenční streamování po blocích s nezávislými kontrolními součty CRC pro každý blok

Technická srovnávací matice: BZ2 vs konkurence

Technický atributBZ2 (Aktuální)GZXZZSTD
Základní algoritmusBurrows-Wheelerova transformace (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Finite State Entropy + LZ77
Komprese vs GzipO 10 % až 20 % menší než u GzipuZákladní standardO 20 % až 30 % menší než u GzipuO 10 % až 20 % menší než u Gzipu
Rychlost dekompresePomalá (~30 až 50 MB/s)Rychlá (~300 MB/s)Střední (~100 MB/s)Blesková (>1,5 GB/s)
Kontrolní součty bloků32bitové CRC pro každý blokJednotlivý proud CRC32Proud CRC64Proud xxHash64

Běžné režimy poškození a příručka pro obnovení v hex

Extrakce se přeruší chybou „bzip2: Chyba integrity dat při dekompresi“.

Hlavní příčina: Překlopený bit v komprimovaném bloku, který způsobuje selhání ověření CRC32 v inverzní permutační matici BWT.

Obnovení: Pomocí nástroje „bzip2recover" lze zachránit nepoškozené bloky v okolí poškozeného sektoru.

Bezpečnostní analýza a vektory útoků na parser

Implementace Bzip2 zahrnují komplexní třídění bitových proudů a parsování Huffmanových tabulek, při nichž se v minulosti vyskytovaly chyby celočíselného přetečení.

Známé vektory útoků

  • Celočíselné přetečení při alokaci třídicího pole BWT (např. CVE-2016-3189).
  • Zápis mimo vyhrazenou paměť při sestavování Huffmanovy dekódovací tabulky.
  • Odepření služby prostřednictvím patologických vstupních vzorů, které vedou k nejhoršímu případu kvadratické časové složitosti třídění BWT.

Doporučené bezpečnostní postupy: Dekódujte soubory BZ2 pomocí dekodérů WASM bezpečně pracujících s pamětí a s vynucenými hranicemi paměti.

Historický vývoj a milníky

2019Federico Mena Quintero modernizuje údržbu zdrojového kódu bzip2 v rámci iniciativ bzip3 a moderního open-source.
2000Vydána verze 1.0, která stabilizuje formát bzip2 napříč distribucemi Linuxu a správci balíčků.
1996Julian Seward vydává bzip2 0.15 jako náhradu za dřívější formát bzip, který zatěžovaly obavy ohledně patentů.

Klíčové výhody a přednosti

  • U zdrojových kódů, systémových protokolů a textových databází dosahuje trvale o 10 % až 20 % lepších výsledků než klasický Gzip.
  • Nezávislá bloková architektura (100k až 900k) obsahuje 32bitové CRC kontrolní součty pro každý blok, což zajišťuje vysokou spolehlivost kontroly integrity.
  • Je nativně dostupný v mnoha distribucích Linuxu, BSD a macOS; zahrnutí se liší podle distribuce.

Technická omezení a nevýhody

  • Výrazně pomalejší kompresní a dekompresní rychlosti ve srovnání s moderními algoritmy, jako je Zstandard.
  • Pouze jednosouborová komprese: pro zabalení více souborů nebo adresářů je nutné spárování s formátem TAR (.tar.bz2).
  • Vyšší využití procesoru během dekomprese než u Gzipu nebo Zstd.

Zajímavé technické drobnosti

  • Magické bajty „BZh" jsou zkratkou pro „Burrows-Wheeler Zip Huffman" a za nimi následuje číslice (1 až 9) udávající velikost bloku ve stovkách kilobajtů (např. „BZh9" = 900 KB).
  • Zdrojový kód jádra Linuxu byl déle než deset let distribuován výhradně ve formátu .tar.bz2, než přešel na .xz.
  • Burrows-Wheelerova transformace data přímo nekomprimuje; permutuje pořadí znaků tak, aby se stejná písmena shlukovala k sobě.

Často kladené technické otázky

Jaký je rozdíl mezi .gz a .bz2?

.bz2 používá Burrows-Wheelerovu transformaci k dosažení menší velikosti souborů než .gz, ale komprese i dekomprese trvají déle.

Proč má bzip2 příkaz „bzip2recover“?

Protože bzip2 komprimuje data v nezávislých 900 KB blocích, z nichž každý má vlastní kontrolní součet CRC, dokáže nástroj bzip2recover extrahovat nepoškozené bloky, i když je část souboru poškozena.

Jak mohu rozbalit soubor .tar.bz2?

Soubory .tar.bz2 můžete rozbalit přímo ve svém webovém prohlížeči pomocí aplikace File2File.app bez spouštění nástrojů příkazové řádky.