Diferencia entre revisiones de «Formato de compresión ZIP»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de 81.172.117.190 a la última edición de 189.242.152.213
Línea 28: Línea 28:
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ó.
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 ==
Holaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
ZIP es un formato de fichero bastante simple, que comprime cada uno de los archivos de forma separada. Comprimir 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 sólo. Éste último comportamiento es el del, también conocido, algoritmo de compresión [[RAR]]. 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 [[ataque de texto plano|texto plano]], [[ataque de diccionario]] y [[ataque de fuerza bruta|fuerza bruta]]. También soporta distribuir las partes de un archivo comprimido en distintos medios, generalmente [[disquete]]s.

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 ==
== Métodos de compresión ==

Revisión del 19:34 17 nov 2009

ZIP


Un icono de archivo zip del conjunto de iconos Nuvola.
Desarrollador
Phil Katz
Información general
Extensión de archivo .zip
Tipo de MIME application/zip
Uniform Type Identifier com.pkware.zip-archive y public.zip-archive
Número mágico 504B0304
Lanzamiento inicial 1989
Tipo de formato Compresión de datos
Extendido de Deflación
Formato abierto ?

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

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 creado 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. Comprimir 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 sólo. Éste último comportamiento es el del, también conocido, algoritmo de compresión RAR. 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

  • Shrinking (Contracción) (método 1)
La Contracción es una variante de LZW con unos pequeños ajustes. Como tal, estaba afectada por la ya expirada patente del LZW. Nunca estuvo claro si la patente cubría la decompresión, pero por si acaso, algunos proyectos libres, como Info-ZIP decidieron no incluirlo en sus productos por defecto.
  • Reducing (Reducción) (métodos 2-5)
La Reducción implica una combinación de compresiones de secuencias de bytes y aplicación de una codificación estadística del resultado.
  • Imploding (Implosión) (método 6)
La Implosión implica comprimir secuencias de bytes repetidamente con una función de ventana deslizante, y posteriormente, comprimir el resultado utilizando múltiples árboles Shannon-Fano.
  • Tokenizing (método 7)
Este método está reservado. La especificación PKWARE no define un algoritmo para él.
  • Deflate and enhanced deflate (métodos 8 y 9)
Estos métodos usan el bien conocido algoritmo deflate. Deflate permite ventanas de hasta 32 KB. Enhanced deflate permite ventanas de hasta 64 KB. La versión mejorada (enhanced) tiene un mejor comportamiento, pero no está tan extendido.
  • Biblioteca de compresión de datos de PKWARE por Imploding (método 10)
La especificación oficial del formato no da más información sobre este método.
  • Método 11
Este método está reservado por PKWARE.
  • Bzip2 (método 12)
Este método utiliza el conocido algoritmo bzip2. Este algoritmo se comporta mejor que Deflate, pero no está ampliamente soportado por las herramientas (sobre todo las de Windows).

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 y 7-Zip.

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.

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.

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 OpenOffice.org y OpenXML por Microsoft Office 2007 son archivos XML comprimidos en formato Zip.

Realidad actual de los algoritmos de compresión

Actualmente, el uso que se les da a los diferentes formatos de compresión (zip, rar, 7z, etc.) difiere bastante de la idea original. Pese a que estos algoritmos surgieron para reducir el tamaño de los archivos y así reducir tiempos de descarga y ahorrar transferencia, actualmente, debido a que la banda ancha ha restado preocupación en ese sentido y a la ineficiencia de estos formatos con los actuales archivos multimedia, ya que estos se diseñaron principalmente para archivos de texto y algunas imágenes, se ha seguido usando estos formatos por la comodidad que representa tener varios archivos relacionados en un único contenedor. Por ejemplo, a la hora de colgar en internet un paquete de muchas imágenes u otros archivos, de no existir contenedor implicaría al usuario tener que descargarse los archivos uno a uno, mientras que gracias a estos formatos el usuario descarga un único archivo. Otra de las ventajas que ofrecen actualmente es la posibilidad de dividir archivos en varias partes. Por ejemplo, en caso de querer subir un archivo de 1 GB a un servidor en el que el tamaño máximo de los archivos es de 100 MB, estos programas permitirían la división del archivo en 10 partes de 100 MB, por lo que se podría subir sin problema. Tanto es así que incluso muchos optan por poner el nivel de compresión en 0 o mínimo, o sea en no comprimir el archivo para reducir las posibles corrupciones y errores. Por eso, de no ser por estas ventajas, los algoritmos de compresión estarían actualmente en desuso.

Véase también

Enlaces externos