Formato de compresión ZIP

En informática, ZIP o zip es un formato de compresión sin pérdida, muy utilizado para la compresión de datos como documentos, imágenes o programas.

ZIP
Desarrollador
Phil Katz, PKWARE
Información general
Extensión de archivo .zip
.zipx
Tipo de MIME application/zip
Uniform Type Identifier com.pkware.zip-archive
Número mágico PK
Lanzamiento inicial 1989
Extendido de Deflación
Extendido a JAR (EAR, RAR (Java), WAR)
Office Open XML (Microsoft)
OpenDocument (ODF)
XPI (extensión Mozilla)
Estándar(es) APPNOTE de PKWARE
Formato abierto ?

Para este tipo de archivos se utiliza generalmente la extensión ".zip".

Muchos programas, tanto comerciales como libres, lo utilizan y permiten su uso más habitual.

Historia

El formato ZIP fue diseñado originalmente por Phil Katz, fundador de PKWARE. Katz liberó al público la documentación técnica del formato ZIP, y lanzó al mismo tiempo la primera versión de PKZIP en enero de 1989.

Katz había copiado ARC y convertido las rutinas de compresión de C a un código optimizado en ensamblador, que lo hacía mucho más rápido. Inicialmente, SEA intentó obtener una licencia por el compresor de Katz, llamado PKARC, pero Katz lo rechazó. SEA demandó entonces a Katz por infringir el copyright, y ganó.

Información técnica

ZIP es un formato de fichero bastante simple, que comprime cada uno de los archivos de forma separada. Comprime cada archivo independientemente del resto de archivos comprimidos permite recuperar cada uno de los ficheros sin tener que leer el resto, lo que aumenta el rendimiento. El problema, es que el resultado de agrupar un número grande de pequeños archivos es siempre mayor que agrupar todos los archivos y comprimirlos como si fuera uno solo. A cambio, esto permite extraer cada archivo de forma independiente sin tener que procesar el archivo desde el principio.

La especificación de ZIP indica que cada archivo puede ser almacenado, o bien sin comprimir, o utilizando una amplia variedad de algoritmos de compresión. Sin embargo, en la práctica, ZIP se suele utilizar casi siempre con el algoritmo de Phil Katz.

ZIP soporta un sistema de cifrado simétrico basado en una clave única. Sin embargo, este sistema de cifrado es débil ante ataques de texto plano, ataque de diccionario y fuerza bruta. También soporta distribuir las partes de un archivo comprimido en distintos medios, generalmente disquetes.

Con el tiempo, se han ido incluyendo nuevas características, como nuevos métodos de cifrado. Sin embargo, estas nuevas características no están soportadas por las aplicaciones más utilizadas.

Métodos de compresión

Cada fichero en un fichero zip es comprimido usando uno de los siguiente algoritmos numerados:[1][2]

Código Método de compresión Notas y referencias
0Uncompressed (No comprimido)
1Shrink (Contracción)LZW con ajustes. Usado por PKZIP 0.x y 1.x.
2–5Reduce (Reducción)LZ77 + predicción. Usado por PKZIP v0.x. El código 2 usa factor de compresión 1, el código 3 usa factor de conversión 2, el código 4 usa factor de conversión 3 y el código 5 usa factor de conversión 4.
6Implode (Implosión)LZ77 con codificación de Huffman. Usado por PKZIP v1.x.
7TokenizedReservado.
8deflateLZ77 con codificación de Huffman. Usado por PKZIP v2.0+.
9Deflate64, también llamado Enhanced Deflateversión de formato 2.1+.
10PKWARE DCL Implode (antiguo IBM TERSE)versión de formato 2.5+.
12Bzip2versión de formato 4.6+.
14LZMA (EFS)Definido en especificación zip v6.3+.
16IBM z/OS CMPSC
18IBM TERSE
19IBM LZ77 z Architecture (PFS)
93Compresión Zstandard (zstd)
94MP3Soportado por WinZip 21+.
95Compresión XZSoportado por WinZip 18+.
96Variante JPEG
97WavPackDefinido en especificación zip v6.3.2+.
98PPMd versión I, Rev 1Definido en especificación zip v6.3+.
99AE-x encryption markerEs un método de cifrado basado en contraseña que usa AES con modo CTR (counter mode) y HMAC-SHA1

Solo los tipos 0 (uncompressed) y 8 (deflate) es habitual verlos en archivos zip modernos.[1] En ficheros zip antiguos es habitual ver tipos 1 (Shrink) y 6 (Implode).[1] Los métodos con códigos del 1 al 6 son métodos desfasados y ya no se recomienda su uso.[2]

En la actualidad

Hoy, los archivos ZIP emplean la extensión de fichero .zip y tienen el tipo media MIME application/zip. Un archivo ZIP contiene uno o más archivos que están comprimidos o almacenados.

Muchas aplicaciones software, distintas de PKZIP, están disponibles para crear, modificar o abrir archivos zip. Destacan WinZip, WinRAR, PeaZip y 7-Zip.

Las versiones de Windows desde Windows Me también traen por defecto un plugin (zipfldr.dll) que permite mostrarlos con una interfaz reducida del Explorador de Windows, de forma parecida a los de archivos .cab (cabview.dll) ya presente en anteriores versiones del SO. Los archivos zip son denominados como "Carpeta comprimida (en zip)" confundiendo el hecho de que se almacena en un único fichero.

Las nuevas versiones de Mac OS X incluyen soporte ZIP integrado en Finder, haciéndolo el formato "oficial" de compresión en los Mac. Sin embargo, la mayoría de archivos de Mac todavía se comprimen y empaquetan con Stuffit o, cada vez más a menudo, mediante tarballs.

Formatos derivados

Este formato es también muy usado para la creación de archivos con múltiples componentes, estando todos ellos comprimidos en un archivo en formato Zip, a menudo con alguna característica más, como el uso de manifests. El primero de ellos fue el formato Jar usado para la distribución de clases (.class) de Java. Las aplicaciones XUL (como Mozilla Firefox) y sus extensiones almacenan buena parte de sus archivos en archivos jar. El formato OpenDocument usado por Apache OpenOffice y OpenXML por Microsoft Office 2007 son archivos XML comprimidos en formato Zip.

Véase también

Referencias

  1. ZIP. Let's Solve the File Format Problem!. archiveteam.org 2020
  2. APPNOTE.TXT - .ZIP File Format Specification. Version: 6.3.9. PKWARE Inc. 15 de julio de 2020.

Enlaces externos

Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.