BZIP2 압축파일 (.bz2)

Bzip2 표준

Bzip2(BZ2)는 Julian Seward가 개발한 고전적인 특허 없는 Unix 압축 유틸리티 및 파일 형식으로, Burrows-Wheeler 변환을 활용하여 고전적인 Gzip보다 훨씬 더 높은 압축률을 달성합니다.

검사 및 메타데이터

운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 BZ2 파일을 식별합니다:

여기에 파일을 선택하거나 놓으세요

100% 브라우저 내 프라이버시 변환 - 파일이 기기를 절대 떠나지 않습니다

또는 붙여넣기 Ctrl+V
제로 네트워크 전송 프라이버시 보장: 외부 서버로 업로드된 데이터 0바이트. 모든 처리는 브라우저 샌드박스내에서 로컬로 수행되었습니다.

바이트 단위 헤더 시그니처 (매직 바이트)

운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 BZ2 파일을 식별합니다:

16진수 시그니처 (오프셋 0):

42 5A 68

ASCII 표현: BZh

표준화: Bzip2 Open Source Standard

기술 사양

컨테이너 아키텍처Stream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
압축Burrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
바이트 엔디안Big-Endian bitstream framing
색 공간N/A (Byte Compression Stream)
채널 및 구조Single-file compressed byte stream
최대 크기Unbounded stream length (supports arbitrary file sizes)
투명도100% bit-exact lossless data preservation
스트리밍 및 프로그레시브Sequential block-by-block streaming with independent per-block CRC checksums

기술 비교 매트릭스: BZ2 대 경쟁사

기술적 속성BZ2 (현재)GZXZZSTD
코어 알고리즘Burrows-Wheeler 변환(BWT)Deflate (LZ77 + 허프만)LZMA / LZMA2유한 상태 엔트로피 + LZ77
Gzip 대비 압축률Gzip보다 10%~20% 더 작음기본 표준Gzip보다 20%~30% 더 작음Gzip보다 10%~20% 더 작음
압축 해제 속도느림 (~30-50 MB/s)빠름 (~300 MB/s)보통 (~100 MB/s)매우 빠름 (>1.5 GB/s)
블록 체크섬블록당 32비트 CRC단일 스트림 CRC32스트림 CRC64스트림 xxHash64

일반적인 손상 모드 및 헥스 복구 가이드

'bzip2: Data integrity error when decompressing' 오류와 함께 추출이 중단됩니다.

근본 원인: 압축된 블록의 비트가 뒤집혀 BWT 역순열 행렬이 CRC32 유효성 검사에 실패했습니다.

복구: 'bzip2recover' 유틸리티를 사용하여 손상된 섹터 주변의 손상되지 않은 블록을 복구합니다.

보안 분석 및 파서 공격 벡터

Bzip2 구현에는 과거에 정수 오버플로 결함이 발생했던 복잡한 비트스트림 정렬 및 허프만 테이블 구문 분석이 포함됩니다.

알려진 공격 벡터

  • BWT 정렬 배열 할당에서의 정수 오버플로 (예: CVE-2016-3189).
  • 허프만 디코딩 테이블 어셈블리 중 범위를 벗어난 쓰기(Out-of-bounds write).
  • 최악의 경우 이차(quadratic) BWT 정렬 시간을 유발하는 병리학적 입력 패턴을 통한 서비스 거부(DoS) 공격.

방어적 모범 사례:

역사적 배경 및 주요 이력

2019Federico Mena Quintero가 bzip3 및 현대적 오픈 소스 이니셔티브 하에서 bzip2 코드베이스 유지보수를 현대화합니다.
2000버전 1.0이 출시되어 Linux 배포판 및 패키지 관리자 전반에서 bzip2 형식이 안정화되었습니다.
1996Julian Seward가 특허 문제가 있던 기존 bzip 형식을 대체하기 위해 bzip2 0.15를 출시합니다.

주요 장점

  • 소스 코드 타르볼(tarball), 시스템 로그 및 텍스트 데이터베이스에서 고전적인 Gzip보다 지속적으로 10%~20% 더 우수한 성능을 발휘합니다.
  • 독립적인 블록 아키텍처(100k~900k)는 강력한 무결성 검사를 위해 블록별 32비트 CRC 체크섬을 포함합니다.
  • 모든 Linux, BSD 및 macOS 명령줄 배포판에서 보편적인 기본 가용성을 제공합니다.

기술적 제한 사항 및 단점

  • Zstandard와 같은 최신 알고리즘에 비해 압축 및 압축 해제 속도가 눈에 띄게 느립니다.
  • 단일 파일 압축 전용: 여러 파일이나 디렉터리를 패키징하려면 TAR(.tar.bz2)와 결합해야 합니다.
  • Gzip이나 Zstd에 비해 압축 해제 시 CPU 사용량이 더 높습니다.

흥미로운 기술적 상식

  • 'BZh' 매직 바이트는 'Burrows-Wheeler Zip Huffman'을 의미하며, 그 뒤에 백 킬로바이트 단위의 블록 크기를 나타내는 숫자('1'에서 '9')가 옵니다(예: 'BZh9' = 900 KB).
  • Linux 커널 소스 코드는 .xz로 마이그레이션하기 전 10년 넘게 .tar.bz2 형식으로만 배포되었습니다.
  • Burrows-Wheeler 변환은 데이터를 직접 압축하지 않고 문자의 순서를 치환하여 동일한 글자끼리 뭉치게 하므로, 허프만 코딩을 통해 쉽게 압축할 수 있게 됩니다.

자주 묻는 기술 질문

.gz와 .bz2의 차이점은 무엇인가요?

.bz2는 버로즈-휠러 변환(Burrows-Wheeler transform)을 사용하여 .gz보다 더 작은 파일 크기를 구현하지만, 압축 및 압축 해제에 더 오랜 시간이 걸립니다.

bzip2에 'bzip2recover' 명령어가 있는 이유는 무엇인가요?

bzip2는 데이터를 각각 고유한 CRC가 포함된 독립적인 900 KB 블록으로 압축하므로, 파일의 일부가 손상되더라도 bzip2recover를 통해 손상되지 않은 블록을 추출할 수 있습니다.

.tar.bz2 파일은 어떻게 추출할 수 있나요?

명령줄 도구를 실행할 필요 없이, 웹 브라우저에서 File2File.app을 사용하여 .tar.bz2 파일을 직접 압축 해제할 수 있습니다.