Archivo BZIP2 (.bz2)

Bzip2 Estándar

Bzip2 (BZ2) es una utilidad clásica de compresión de Unix libre de patentes y un formato de archivo creado por Julian Seward, que utiliza la transformada de Burrows-Wheeler para lograr una compresión significativamente más estricta que el Gzip clásico.

Inspeccionar y metadatos

Los sistemas operativos y analizadores de archivos identifican los archivos de BZ2 inspeccionando la secuencia de bytes binarios inicial:

Selecciona o arrastra archivos aquí

Conversión 100% privada en el navegador; los archivos nunca salen de tu dispositivo

o pega Ctrl+V
Garantía de privacidad sin transmisión de red: 0 bytes subidos a servidores externos. Todo el procesamiento se realizó de forma local en el entorno seguro de tu navegador.

Firma de cabecera a nivel de bytes (Bytes mágicos)

Los sistemas operativos y analizadores de archivos identifican los archivos de BZ2 inspeccionando la secuencia de bytes binarios inicial:

FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):

42 5A 68

REPRESENTACIÓN ASCII: BZh

Estandarización: Bzip2 Open Source Standard

Especificaciones técnicas

Arquitectura del contenedorCabecera de flujo ('BZh' + dígito de tamaño de bloque 1-9) seguida de bloques de datos comprimidos y CRC de 32 bits
CompresiónTransformada de Burrows-Wheeler (BWT), transformada Move-to-Front (MTF) y codificación Huffman
Orden de bytes (Endianness)Estructura de flujo de bits de gran-extremo
Espacios de colorN/D (Flujo de compresión de bytes)
Canales y estructuraFlujo de bytes comprimido de un solo archivo
Dimensiones máximasLongitud de flujo ilimitada (admite tamaños de archivo arbitrarios)
TransparenciaPreservación de datos sin pérdida exacta bit a bit al 100%
Streaming y progresivoTransmisión secuencial bloque por bloque con sumas de comprobación CRC independientes por bloque

Matriz de comparación técnica: BZ2 frente a la competencia

Atributo técnicoBZ2 (Actual)GZXZZSTD
Algoritmo principalTransformada de Burrows-Wheeler (BWT)Desinflar (LZ77 + Huffman)LZMA / LZMA2Entropía de estado finito + LZ77
Compresión vs Gzip10% - 20% más pequeño que GzipEstándar base20% - 30% más pequeño que Gzip10% - 20% más pequeño que Gzip
Velocidad de descompresiónLenta (~30-50 MB/s)Rápida (~300 MB/s)Moderada (~100 MB/s)Ultrarrápida (>1.5 GB/s)
Sumas de comprobación de bloquesCRC de 32 bits por bloqueCRC32 de flujo únicoCRC64 de flujoxxHash64 de flujo

Modos de corrupción comunes y guía de recuperación hexadecimal

La extracción se aborta con 'bzip2: Error de integridad de datos al descomprimir'.

Causa raíz: Bit invertido en el bloque comprimido que hace que la matriz de permutación inversa BWT falle en la validación CRC32.

Recuperación: Utilice la utilidad 'bzip2recover' para rescatar los bloques no dañados que rodean el sector corrupto.

Análisis de seguridad y vectores de ataque al analizador

Las implementaciones de Bzip2 implican una clasificación compleja de flujos de bits y análisis de tablas Huffman que históricamente han experimentado fallas de desbordamiento de enteros.

Vectores de ataque conocidos

  • Desbordamiento de enteros en la asignación de matrices de clasificación BWT (ej. CVE-2016-3189).
  • Escritura fuera de límites durante el ensamblaje de la tabla de decodificación Huffman.
  • Denegación de servicio a través de patrones de entrada patológicos que provocan tiempos de clasificación BWT cuadráticos en el peor de los casos.

Mejores prácticas defensivas: Decodifique archivos BZ2 utilizando decodificadores WASM seguros para la memoria con límites de memoria aplicados.

Orígenes históricos e hitos

2019Federico Mena Quintero moderniza el mantenimiento del código base de bzip2 bajo bzip3 y las iniciativas modernas de código abierto.
2000Se lanza la versión 1.0, estabilizando el formato bzip2 en las distribuciones de Linux y los administradores de paquetes.
1996Julian Seward lanza bzip2 0.15 para reemplazar el formato bzip anterior que tenía problemas de patentes.

Ventajas clave y pros

  • Supera consistentemente al Gzip clásico en un 10% a 20% en tarballs de código fuente, registros del sistema y bases de datos de texto.
  • La arquitectura de bloques independientes (100k a 900k) incluye sumas de comprobación CRC de 32 bits por bloque para una verificación de integridad robusta.
  • Disponibilidad nativa universal en todas las distribuciones de línea de comandos de Linux, BSD y macOS.

Limitaciones técnicas y contras

  • Velocidades de compresión y descompresión significativamente más lentas en comparación con los algoritmos modernos como Zstandard.
  • Compresión de un solo archivo únicamente: requiere emparejamiento con TAR (.tar.bz2) para empaquetar varios archivos o directorios.
  • Mayor uso de CPU durante la descompresión que Gzip o Zstd.

Curiosidades técnicas interesantes

  • Los bytes mágicos 'BZh' significan 'Burrows-Wheeler Zip Huffman', seguidos de un dígito ('1' a '9') que denota el tamaño del bloque en cientos de kilobytes (ej. 'BZh9' = 900 KB).
  • El código fuente del Kernel de Linux se distribuyó exclusivamente en formato .tar.bz2 durante más de una década antes de migrar a .xz.
  • La transformada de Burrows-Wheeler no comprime los datos directamente; permuta el orden de los caracteres para que las letras idénticas se agrupen, lo que facilita su compresión mediante la codificación Huffman.

Preguntas técnicas frecuentes

¿Cuál es la diferencia entre .gz y .bz2?

.bz2 utiliza la transformada de Burrows-Wheeler para lograr tamaños de archivo más pequeños que .gz, pero tarda más en comprimirse y descomprimirse.

¿Por qué bzip2 tiene un comando 'bzip2recover'?

Debido a que bzip2 comprime los datos en bloques independientes de 900 KB, cada uno con su propio CRC, bzip2recover puede extraer bloques no dañados incluso si parte del archivo está corrupto.

¿Cómo puedo extraer un archivo .tar.bz2?

Puede descomprimir archivos .tar.bz2 directamente en su navegador web con File2File.app sin necesidad de ejecutar herramientas de línea de comandos.