Red de conocimiento del abogados - Consultar a un abogado - ¿Qué tipo de archivo comprimido es mejor?

¿Qué tipo de archivo comprimido es mejor?

7z tiene la relación de compresión más alta. 1. Directorio y volumen

Dejando de lado el algoritmo de compresión, creo que la mayor diferencia en el formato de archivo entre zip y rar es la tabla de contenidos (TOC): ZIP tiene un TOC, pero rar no.

De hecho, la palabra TOC está tomada de la industria editorial y se refiere al "índice" delante del texto de cada libro. Su función es conocida por todos en el mundo: si desea encontrar rápidamente un determinado contenido en un libro, puede buscarlo primero y luego pasar directamente según el número de página especificado por el TOC.

En los libros en papel, TOC es una forma impresa, mientras que en los archivos electrónicos es una forma compuesta de datos estructurados. Su propósito también es localizar rápidamente: si desea encontrar algo en un archivo, primero puede consultar el TOC para saber dónde está el contenido de interés en el archivo y luego omitirlo. Las aplicaciones más comunes son archivos multimedia como avi y rm: la gente suele saltar sobre la barra de reproducción durante la reproducción (es decir, "acceso aleatorio"). Sin TOC, el posicionamiento de un lado a otro en archivos de cientos de megabytes de longitud sería lento.

Específicamente para los archivos zip, TOC es una tabla ubicada al final del archivo, que enumera los atributos (nombre del archivo, longitud, etc.) y sus ubicaciones de almacenamiento en el paquete zip. Si necesita acceder aleatoriamente a un archivo en el paquete zip, solo necesita encontrar la ubicación de almacenamiento del archivo en el TOC y omitirlo directamente.

Sin embargo, no hay TOC en los archivos RAR y todos los archivos se almacenan secuencialmente después del encabezado del archivo.

El resultado de esta diferencia es que zip es más rápido que rar durante el acceso aleatorio, mientras que rar es más rápido que zip durante el acceso secuencial.

El llamado acceso aleatorio se refiere al acceso aleatorio a los archivos especificados en el paquete comprimido mencionado anteriormente. Tomemos un ejemplo simple: un libro electrónico web descompilado o descargado, que contiene una gran cantidad de HTML, imágenes, css y js, y luego se empaqueta en un paquete comprimido. Ahora debe acceder a la página sin descomprimirla: puede imaginar que cuando abre cada página HTML, archivos adicionales como imágenes, css, js, etc. pueden distribuirse aleatoriamente por todo el paquete comprimido. Sin un TOC, encontrar cada archivo desde cero sería lento. Entonces puedes entender por qué el paquete jar es un paquete zip estándar. Solo uso el formato zip para guardar libros electrónicos, cómics, libros PDG descompilados y todo lo que pueda necesitar acceso aleatorio.

El llamado acceso secuencial consiste en descomprimir todo el paquete comprimido de principio a fin. RAR tiene ventajas naturales a este respecto. Y para ahorrar tiempo al enumerar archivos en WinRAR, normalmente descomprimo un solo RAR directamente a través del menú contextual y rara vez hago doble clic en el paquete comprimido para abrirlo y luego descomprimirlo.

Dado que el autor original de rar falleció, creo que no se puede verificar la razón exacta de esta diferencia, pero mi suposición personal es que puede estar relacionada con la disputa sobre el software de respaldo en la era DOS: En la era DOS, los discos duros de las computadoras no eran tan grandes como lo son ahora. Lujo, 20 MB ya es mucho. Esta capacidad se puede respaldar con dos cajas de disquetes. En comparación con el valor de los datos en sí, el costo de la copia de seguridad es muy bajo. Por lo tanto, en la era DOS, muchas empresas e instituciones establecieron políticas periódicas de copia de seguridad del disco duro para evitar la pérdida irreparable de datos debido a factores humanos o no humanos (los primeros discos duros pueden no ser tan confiables como hoy). En términos de software de respaldo, aunque Microsoft ha proporcionado la herramienta BackupRestore para DOS, básicamente no tiene la capacidad de comprimir datos. Por lo tanto, proporcionar funciones de respaldo en el software de compresión se ha convertido en una moda en la era de DOS. Dado que los medios de copia de seguridad en la era DOS eran principalmente disquetes, la función de copia de seguridad del software de compresión se ha transformado en una función muy común ahora: la función de compresión de volumen, que comprime el volumen de acuerdo con la capacidad del disquete, y luego realiza una copia de seguridad de los archivos comprimidos en el disquete. Descomprime o restaura en el disco duro.

La herramienta de compresión más famosa en la era DOS fue pkzip, que apareció antes que la versión DOS de RAR. Durante la compresión de volúmenes, pkzip almacena el TOC al final, es decir, en el último volumen, según la especificación del archivo zip, lo que provocará los siguientes problemas:

1. descomprima el disco, primero debe insertarlo. Para el último disco, el TOC se lee una vez.

2. Mientras el TOC del último disco esté roto, incluso si los otros discos están en buen estado, no podrá descomprimirse normalmente.

Estas dos deficiencias, especialmente la primera, son tan notorias que existe un fuerte llamado a la reforma. En este momento crítico, apareció la versión DOS de RAR: no solo la relación de compresión era mayor que pkzip (esto era importante en la era DOS, después de todo, los disquetes eran caros y tenían poca capacidad), sino que también el TOC fue cancelado debido a las críticas al formato zip en ese momento, entonces:

1. Al restaurar archivos de respaldo comprimidos por volúmenes, no es necesario insertar volúmenes con TOC con frecuencia, solo cambie los discos en orden.

2. Incluso si el volumen está dañado, puede omitirlo y comenzar la descompresión desde el volumen intacto.

Por estas razones (por supuesto que hay otras razones), RAR logró un rápido éxito después de su lanzamiento, pkzip comenzó a perder usuarios en la era de DOS y básicamente desapareció en la era de Windows. Winzip, lanzado en la era de Windows, abandonó por completo la función de compresión de volumen (¿el formato zip siempre perjudica a la gente?).

Por el código fuente UnRAR de WinRAR que he visto, es obvio que la idea de descompresión de WinRAR es descomprimir archivos en orden de principio a fin. Parece que el impacto de esos años de guerras de herramientas de respaldo y recuperación es realmente de gran alcance.

2. Modo de compresión sólida

En términos de algoritmo de compresión, creo que la característica más distintiva del formato rar es la compresión estereoscópica. La descripción de la compresión de estado sólido en el archivo de ayuda de WinRAR v3.42 es la siguiente:

Un archivo comprimido de estado sólido es un archivo comprimido almacenado en el modo de compresión especial RAR, que trata todos los archivos en el archivo comprimido como un flujo de datos contiguo.

Esta explicación en realidad revela el secreto de que el formato de compresión sólida puede mejorar la relación de compresión: la base de la compresión de datos es la "repetición", como la cadena aaaabbb, que contiene repetición. Si se expresa como a4b3, ¿parece más corto? Esto es "compresión de datos". La "repetición" es un concepto relativo. Si parece que hay muy pocas repeticiones o ninguna en un determinado rango, podemos encontrar más datos repetidos ampliando el rango. Este es el secreto de la compresión sólida.

Un ejemplo sencillo: es difícil comprimir un montón de archivos jpg con zip y rar normal, pero se puede comprimir con rar sólido. La razón es que los archivos jpg ya están en formato comprimido y es difícil encontrar datos duplicados utilizables en un solo archivo jpg, por lo que es difícil usar zip o rar normal para la compresión, porque separan los archivos que necesitan ser comprimirlos y procesarlos uno por uno. Pero para rar sólido, todos los archivos jpg que deben comprimirse se comprimen en su conjunto. Hay datos duplicados entre estos jpg. Por ejemplo, todos tienen el mismo encabezado de archivo (incluidas varias tablas de datos), lo que da como resultado un espacio comprimible. Según la información que he visto, los archivos Flash también usan tecnología similar para comprimir jpg: si se usan varios archivos jpg en el archivo Flash, se puede usar un encabezado.

Por supuesto, no hay almuerzo gratis en el mundo. El método de compresión sólida también tiene algunas limitaciones al tiempo que mejora la relación de compresión. En el archivo de ayuda de WinRAR v3.42 dice:

La compresión sólida puede mejorar el rendimiento de la compresión, especialmente cuando se agrega una gran cantidad de archivos pequeños, pero también tiene algunas desventajas importantes.

La actualización de los archivos de entidades existentes es lenta;

Al extraer un solo archivo de un archivo de entidad, todos los archivos que lo preceden deben analizarse primero. Esto hace que la extracción de archivos de archivos comprimidos sólidos sea más lenta que la de archivos comprimidos normales. Sin embargo, cuando se descomprimen todos los archivos a partir de archivos comprimidos sólidos, no hay ningún impacto en la velocidad de descompresión.

Si algún archivo del archivo sólido está dañado, no se pueden descomprimir todos los archivos de la extensión dañada. Por lo tanto, si el archivo comprimido de estado sólido se almacena en un medio como un disquete, se recomienda utilizar la "Grabación de recuperación" al crearlo.

La compresión sólida se aplica en las siguientes situaciones

Cuando los archivos comprimidos rara vez se actualizan;

No es necesario extraer con frecuencia archivos o partes de archivos de archivos comprimidos. archivos;

Cuando la eficiencia de la compresión es más importante que la velocidad de compresión.

En correspondencia con el "acceso aleatorio" mencionado anteriormente, un archivo RAR comprimido sólido es probablemente el peor del mundo para acceso aleatorio: si necesita acceder a los archivos en un archivo RAR sólido, debe comenzar a descomprimirlo. desde el principio del archivo hasta llegar al archivo.

En tercer lugar, seguridad

Aquí, seguridad incluye varios significados: seguridad del sistema de archivos, seguridad de protección con contraseña y seguridad de datos de archivos.

Dado que la seguridad de los archivos del sistema operativo en sí no ha atraído suficiente atención al formular la especificación del formato zip, el formato zip solo registra los atributos de archivo más básicos, incluidos los atributos de solo lectura, y ninguna otra seguridad adicional. propiedades.

Cuando se introdujo por primera vez el formato rar, la seguridad del sistema de archivos sólo podía referirse a DOS, similar a zip. Pero, después de todo, rar es un formato cerrado y depende del autor decidir cómo cambiarlo. Entonces, cuando NTFS apareció en Windows y se introdujeron atributos de seguridad extendidos del sistema de archivos, rar también siguió activamente, por lo que ahora debería decirse que el formato rar es mejor que zip en este sentido.

Tanto el formato zip como el rar brindan protección con contraseña, pero la seguridad de la protección con contraseña es diferente.

Debido al formato abierto y al código fuente abierto de zip, el software para descifrar contraseñas zip apareció antes y con mayor frecuencia. Al principio, se trataba principalmente de craqueo por fuerza bruta, lo que no representaba una gran amenaza. El verdadero golpe fatal para la seguridad de las contraseñas zip es el conocido método de ataque de texto sin formato: si conoce el contenido verdadero descifrado (texto sin formato) de una determinada sección de contenido (texto cifrado) en un archivo zip cifrado, puede deducir la contraseña zip cifrada. Bajo la amenaza de este método de ataque y las restricciones legales sobre la tecnología de cifrado en algunos países, la famosa organización de código abierto zlib anunció que abandonará permanentemente el soporte para zip cifrado. Para obtener más detalles, consulte las instrucciones relevantes en el sitio web de zlib (aunque aún puede encontrar los códigos originales relacionados con el cifrado y descifrado buscando cuidadosamente en el código fuente publicado por zlib).

Recuerdo que cuando se lanzó rar por primera vez, era lo mismo que zip. Aunque no se puede enumerar el contenido de un archivo cifrado, se pueden enumerar los nombres de los archivos dentro del archivo cifrado.

Más tarde, probablemente porque estaba asustado por los conocidos ataques de texto sin formato, agregué una opción de "nombre de archivo cifrado". Incluso los archivos en el archivo rar cifrado no se pueden ver, lo que hace imposible que los atacantes adivinen el texto sin formato.

El formato Rar se lanzó después que el zip, y se han aprendido bastantes lecciones en términos de seguridad. Por tanto, se utiliza el algoritmo de cifrado simétrico AES recomendado por el Instituto Nacional de Estándares y Tecnología (NIST), con una longitud de clave de 128 bits. Antes de que se violara ASE (el NIST creía que sería imposible violarlo en 30 años), todos solo podían recurrir a métodos de fuerza bruta, por lo que se debería decir que la seguridad de las contraseñas es superior a zip. El archivo de ayuda de WinRAR 3.42 se describe a continuación:

El formato ZIP utiliza un algoritmo de cifrado privado. Los archivos comprimidos RAR utilizan un cifrado estándar AES-128 más potente. Si necesita cifrar información importante, lo mejor es elegir el formato de archivo comprimido RAR. Para garantizar la seguridad, las contraseñas deben tener al menos 8 caracteres. No utilice palabras de ningún idioma como contraseñas. Lo mejor es utilizar una combinación aleatoria de caracteres y números, y prestar atención a las mayúsculas y minúsculas de la contraseña. Recuerde, si pierde su contraseña, no podrá recuperar los archivos cifrados, ni siquiera el propio autor de WinRAR podrá descomprimir los archivos cifrados.

En términos de seguridad de los datos, el propio formato RAR admite un tipo especial de información adicional llamada "Registros de recuperación". Si el archivo RAR tiene un registro de recuperación, cuando el medio está dañado físicamente o se pierden datos por otros motivos, WinRAR puede intentar reparar los datos basándose en el "registro de recuperación". El formato Zip no tiene registros de recuperación, por lo que hay que decir que la seguridad de los datos es más débil que la del RAR.

Aunque el archivo RAR en sí admite la grabación de recuperación, esta opción está desactivada de forma predeterminada en WinRAR. Cuando está activada, el tamaño del archivo RAR comprimido aumentará (el porcentaje de aumento depende de la configuración), lo que puede ocurrir. Porque algunas personas no están acostumbradas (personalmente vi a alguien quejándose en el foro de por qué el archivo RAR comprimido es tan grande), por lo que esta función es básicamente inútil.

Cuarto, apertura

El contraste de la apertura es obvio: el formato zip no solo es completamente abierto en términos de formato de archivo, sino que también tiene una organización de código abierto dedicada para proporcionar fuente operativa. código y no hay uso multiplataforma Demasiado restrictivo; el formato Rar es completamente confidencial. El autor solo proporciona el código fuente necesario para la descompresión, no para la compresión, por lo que el uso multiplataforma es un poco problemático.

Entre las organizaciones de código abierto de Zip, las más famosas son zlib e InfoZip, cada una de las cuales tiene su propio énfasis: zlib enfatiza la compresión de los buffers de memoria, por lo que Open lo utiliza como algoritmo de compresión interna. organizaciones fuente como png e incluso java. El kernel jar proviene de zlib, por lo que el paquete jar escrito es, naturalmente, un archivo zip estándar que se centra en operaciones de archivos (incluida la protección con contraseña) y su aplicación no parece estar tan extendida; como zlib, pero personalmente creo que es bastante útil, siempre que sea necesario realizar algunas modificaciones necesarias en su código fuente.

El sitio web de la organización PNG menciona la historia del formato PNG, lo cual me parece muy interesante. De hecho, un grupo de personas que hacen png están haciendo formato gif. Pero debido a que Unisys comenzó a cobrar tarifas de patente por el algoritmo de compresión LZW, el núcleo del formato GIF, estas personas se enojaron y simplemente propusieron el formato PNG: las estructuras grandes todavía usan estructuras segmentadas, pero el algoritmo de compresión central usa el código abierto zlib. En la mayoría de los casos, el efecto de compresión es más fuerte que el gif LZW. Dado que no existen restricciones de derechos de autor, png se ha utilizado ampliamente en el campo de los gráficos estáticos. Si el soporte de animación no se hubiera propuesto a tiempo y no se hubiera vuelto popular en Internet, supongo que los gif habrían muerto hace mucho tiempo.

El código fuente de descompresión de RAR se proporciona en su sitio web oficial www.rarlab.com, que suele ser un poco posterior a la versión oficial de WinRAR, pero se dice que se extrae directamente del código fuente de WinRAR. , por lo que no debería haber ningún problema de compatibilidad.

Conclusión del verbo (abreviatura del verbo)

Las siguientes opiniones son puramente personales, sirven únicamente como referencia y no tienen ningún significado orientativo:

Si necesitas hacerlo con frecuencia acceder aleatoriamente a paquetes comprimidos, debe elegir zip en lugar de rar. Aunque será problemático volver a comprimir el rar descargado en zip una vez, evitará innumerables problemas en el futuro.

Si se requiere compresión de volumen (por ejemplo, algunos sitios web tienen restricciones en el tamaño de los archivos cargados), solo puedes usar rar. De hecho, esta es la única vez que usaría el formato rar; otras veces, zip no es negociable.