BZIP2 archívum (.bz2)

Bzip2 Szabvány

A Bzip2 (BZ2) egy klasszikus, szabadalmaktól mentes Unixömörsömözi-tömörítő segédprogram és fájlformátum, amelyet Julian Seward hozott létre. A Burrows-Wheeler transzformációt alkalmazza, amellyel jelentősen jobb tömörítési arányt ér el a klasszikus Gzipnél.

Vizsgálat és metaadatok

Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) BZ2 fájlokat:

Válasszon ki vagy ejtsen ide fájlokat

100%-ban magánjellegű, böngészőn belüli konvertálás - a fájlok soha nem hagyják el az eszközét

vagy beillesztés Ctrl+V
Nulla hálózati adatátviteli adatvédelmi garancia: 0 bájt lett feltöltve külső szerverekre. Minden feldolgozás helyben, az Ön böngészőjének homokozójában történt.

Bájt-szintű fejléc aláírás (Magic Bytes)

Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) BZ2 fájlokat:

HEX ALÁÍRÁS (ELTOLÁS 0):

42 5A 68

ASCII REPREZENTÁCIÓ: BZh

Szabványosítás: Bzip2 Open Source Standard

Műszaki specifikációk

Konténer architektúraStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
TömörítésBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
BájtsorrendBig-Endian bitstream framing
SzínterekN/A (Byte Compression Stream)
Csatornák és struktúraSingle-file compressed byte stream
Max. méretekUnbounded stream length (supports arbitrary file sizes)
Átlátszóság100% bit-exact lossless data preservation
Streaming és progresszívSequential block-by-block streaming with independent per-block CRC checksums

Műszaki összehasonlító mátrix: BZ2 vs Versenytársak

Technikai attribútumBZ2 (Jelenlegi)GZXZZSTD
Alapvető algoritmusBurrows-Wheeler transzformáció (BWT)Deflate (LZ77 + Huffman)LZMA / LZMA2Véges állapotú entrópia + LZ77
Tömörítés a Gziphez képest10% - 20%-kal kisebb, mint a GzipAlapszintű szabvány20% - 30%-kal kisebb, mint a Gzip10% - 20%-kal kisebb, mint a Gzip
Kitömörítési sebességLassú (~30-50 MB/s)Gyors (~300 MB/s)Mérsékelt (~100 MB/s)Villámgyors (>1,5 GB/s)
Blokk-ellenőrzőösszegekBlokkonkénti 32 bites CRCEgyszeres adatfolyam CRC32Adatfolyam CRC64Adatfolyam xxHash64

Gyakori sérülési módok és hexadecimális helyreállítási útmutató

A kitömörítés megszakad a „bzip2: Data integrity error when decompressing" hibaüzenettel.

Kiváltó ok: Megbillent bit a tömörített blokkban, ami miatt a BWT inverz permutációs mátrix CRC32-ellenőrzése sikertelen lesz.

Helyreállítás: Használja a „bzip2recover" segédprogramot a sérült szektort körülvevő sértetlen blokkok mentéséhez.

Biztonsági elemzés és elemző (parser) támadási vektorok

A Bzip2 implementációk összetett bájtfolyam-rendezést és Huffman-tábla elemzést tartalmaznak, amelyek a múltban egész túlcsordulási hibáktól szenvedtek.

Ismert támadási vektorok

  • Egész túlcsordulás a BWT rendezési tömb lefoglalásakor (pl. CVE-2016-3189).
  • Határokon túli írás a Huffman dekódolási tábla összeállítása során.
  • Szolgáltatásmegtagadás (DoS) patologikus bemeneti minták révén, amelyek a legrosszabb esetben is másodfokú BWT rendezési időt okoznak.

Védekező Legjobb Gyakorlatok:

Történeti háttér és mérföldkövek

2019Federico Mena Quintero modernizálja a bzip2 kódbázis karbantartását a bzip3 és a modern nyílt forráskódú kezdeményezések keretében.
2000Megjelenik az 1.0-s verzió, amely stabilizálja a bzip2 formátumot a Linux disztribúciókban és csomagkezelőkben.
1996Julian Seward kiadja a bzip2 0.15-ös verzióját a korábbi, szabadalmi aggályokkal küzdő bzip formátum felváltására.

Főbb előnyök

  • Forráskód-archívumok, rendszernaplók és szöveges adatbázisok esetén következetesen 10-20%-kal felülmúlja a klasszikus Gzipet.
  • A független blokkarchitektúra (100k és 900k között) blokkonkénti 32 bites CRC-ellenőrzőösszegeket tartalmaz a robusztus integritásellenőrzés érdekében.
  • Univerzális natív elérhetőség minden Linux, BSD és macOS parancssori disztribúcióban.

Technikai korlátok és hátrányok

  • Jelentősen lassabb tömörítési és kitömörítési sebesség a modern algoritmusokhoz, például a Zstandardhoz képest.
  • Csak egyfájlos tömörítés: több fájl vagy könyvtár csomagolásához TAR (.tar.bz2) formátummal kell párosítani.
  • Nagyobb CPU-használat a kitömörítés során a Gziphez vagy a Zstdhez képest.

Érdekes technikai tudnivalók

  • A „BZh" bájtkombináció a „Burrows-Wheeler Zip Huffman" kifejezést jelenti, amelyet egy számjegy ('1'-től '9'-ig) követ, megadva a blokkméretet kilobájtokban (pl. 'BZh9' = 900 KB).
  • A Linux kernel forráskódját több mint egy évtizedig kizárólag .tar.bz2 formátumban terjesztették, mielőtt áttértek volna a .xz-re.
  • A Burrows-Wheeler transzformáció nem közvetlenül tömöríti az adatokat; megváltoztatja a karakterek sorrendjét úgy, hogy az azonos betűk egymás mellé kerüljenek, így a Huffman-kódolással könnyen tömöríthetővé válnak.

Gyakran Ismételt Műszaki Kérdések

Mi a különbség a .gz és a .bz2 között?

A .bz2 a Burrows-Wheeler transzformációt használja a .gz-nél kisebb fájlméret eléréséhez, de a tömörítése és kitömörítése több időt vesz igénybe.

Miért van a bzip2-nek 'bzip2recover' parancsa?

Mivel a bzip2 független, 900 KB-os blokkokban – mindegyik saját CRC-vel ellátva – tömöríti az adatokat, a bzip2recover képes kinyerni a sértetlen blokkokat még akkor is, gdy a fájl egy része megsérült.

Hogyan csomagolhatok ki egy .tar.bz2 fájlt?

A .tar.bz2 fájlokat közvetlenül a webböngészőjében csomagolhatja ki a File2File.app segítségével, parancssori eszközök futtatása nélkül.