¿Qué tipo de archivo comprimido es mejor?
Dejando de lado el algoritmo de compresión, creo que la mayor diferencia entre zip y rar en términos de formato de archivo es la tabla de contenidos (TOC): zip tiene TOC, pero rar no. El modo 3D está diseñado para proporcionar una interfaz gráfica de usuario extremadamente optimizada y eficiente.
La palabra TOC en realidad proviene de la industria editorial y se refiere al "índice" delante del texto de cada libro. Todo el mundo conoce su función: si quieres encontrar algo rápidamente. en un libro Qué, primero puede consultar el TOC y luego pasar directamente a la página de acuerdo con el número de página indicado en el TOC.
En los libros en papel, TOC es una tabla impresa, mientras que en los documentos electrónicos es una tabla de datos estructurados, y su propósito también es el posicionamiento rápido: si desea encontrar un determinado elemento en el documento. contenido, primero puede verificar el TOC, luego saber dónde está el contenido de interés en el documento y luego simplemente saltar a él. Los más utilizados son los archivos multimedia como avi y rm: cuando se reproduce, la gente suele hacer clic y saltar en la barra de reproducción para mirar (es decir, "acceso aleatorio" si no hay TOC, aparecerán archivos de hasta cientos de megabytes). Ir y venir en posicionamiento será una muerte lenta.
Específicamente para archivos comprimidos, TOC es una tabla al final del archivo, que enumera los atributos (nombre de archivo, longitud, etc.) de cada archivo en el paquete comprimido y la ubicación de almacenamiento del archivo. en el paquete comprimido. Si necesita acceso aleatorio a un archivo en el archivo, simplemente busque la ubicación del archivo en el TOC y vaya directamente a él.
No hay TOC en los archivos RAR, 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 para acceso aleatorio y rar es más rápido que zip para acceso secuencial.
El llamado acceso aleatorio se refiere al acceso aleatorio a los archivos especificados en el paquete comprimido mencionado anteriormente. Para dar un ejemplo simple: un libro electrónico se descompila o descarga en una página web, que contiene una gran cantidad de HTML, imágenes, css y js, y luego se escribe en un paquete comprimido. Ahora es necesario acceder a estas páginas sin descomprimir: imagine que abre cada página HTML y sus propias imágenes, css, js y otros archivos pueden distribuirse aleatoriamente en todo el paquete comprimido. Si no hay TOC, al buscar cada archivo. Hay que empezar desde el principio para encontrarlo, qué lento será. Para que pueda comprender por qué el paquete jar es un paquete comprimido estándar. Solo uso el formato del paquete comprimido para guardar libros electrónicos, cómics, libros PDG y otros archivos descompilados que puedan necesitar acceso aleatorio.
Por acceso secuencial me refiero a que se descomprime todo el paquete comprimido de principio a fin. RAR tiene una ventaja natural en este sentido. Para ahorrar tiempo cuando WinRAR enumera archivos, para un solo RAR, generalmente lo descomprimo directamente a través del menú contextual y rara vez hago doble clic en el archivo para abrirlo y luego descomprimirlo.
Dado que el autor original de rar falleció, creo que no se ha verificado la razón exacta de esta diferencia, pero personalmente supongo que esto puede estar relacionado con el debate sobre el software de copia de seguridad en la era DOS: En la era DOS, los discos duros de las computadoras no son tan lujosos como ahora, 20 MB ya es mucha capacidad. Esta capacidad se puede respaldar con dos cajas de disquetes y el costo de la copia de seguridad es muy bajo en comparación con el valor de los datos en sí. Por lo tanto, en la era DOS, muchas empresas y organizaciones tenían políticas periódicas de copia de seguridad del disco duro para evitar la pérdida irreversible de datos debido a factores humanos o no humanos (los primeros discos duros no eran tan confiables como lo son ahora). En términos de software de respaldo, aunque Microsoft proporcionó la herramienta BackupRestore en DOS, básicamente no tenían capacidades de compresión de datos, por lo que proporcionar funciones de respaldo en software de compresión se convirtió en una moda en la era de DOS. Dado que la mayoría de los medios de copia de seguridad en la era DOS eran disquetes, la función de copia de seguridad en el software de compresión se ha transformado en una función muy común hoy en día: compresión de volumen, es decir, compresión de volumen basada en la capacidad del disquete, y luego realizar una copia de seguridad del disco. Volumen los archivos comprimidos (Copia de seguridad) en un disquete y luego descomprima o restaure en el disco duro (Restaurar) si es necesario.
La herramienta zip más famosa en la era DOS es pkzip, que apareció antes que la versión DOS de RAR.
En la compresión de volúmenes, pkzip guarda el TOC al final según la especificación del archivo zip, es decir, en el último volumen, lo que trae los siguientes problemas:
1.
2. Mientras el TOC del último disco sea malo, incluso si los otros discos son buenos, no podrá descomprimirse normalmente.
Estas dos deficiencias, especialmente la primera, se han vuelto notorias y los llamados a la reforma son muy fuertes. En este momento crítico apareció la versión DOS de RAR: no solo la tasa de compresión era mayor que la de pkzip (esto era muy importante en la era DOS, después de todo, los disquetes eran caros y de pequeña capacidad), sino también porque Después de absorber las críticas al formato zip en ese momento, se canceló el TOC, por lo que:
1. Al restaurar archivos de copia de seguridad comprimidos en volúmenes, no es necesario insertar volúmenes con TOC con frecuencia para reemplazar los discos.
2. Incluso si uno de los volúmenes está dañado, puede omitirlo y comenzar la descompresión nuevamente desde el volumen intacto.
Por estas razones (y por supuesto otras), RAR fue un éxito inmediato tras su lanzamiento, mientras que pkzip empezó a perder usuarios en la era DOS y básicamente desapareció en la era Windows. Winzip, lanzado en la era de Windows, abandonó por completo la función de compresión de volumen (¿el formato zip siempre es una molestia?) En la era de Windows, el formato Winzip se abandonó por completo. Por lo que vi en el código fuente de WinRAR UnRAR, la idea actual de descompresión de WinRAR es obviamente descomprimir archivos en orden de principio a fin. Parece que el impacto de la disputa sobre las herramientas de copia de seguridad y recuperación fue realmente de gran alcance.
2. Compresión sólida
En términos de algoritmo de compresión, creo que la característica más importante del formato rar es la compresión sólida. El archivo de ayuda de WinRAR v3.42 describe la compresión de estado sólido de la siguiente manera:
La compresión de estado sólido es un método de compresión especial en el almacenamiento de archivos comprimidos RAR, que trata el archivo comprimido como un todo. Todos los archivos en un archivo comprimido son flujos continuos de datos.
Esta descripción en realidad revela el secreto de la capacidad del formato de compresión sólida para mejorar la relación de compresión: la base de la compresión de datos es la "repetición", como la cadena aaaabbb, hay repeticiones, si se expresa como a4b3, ¿se ve mejor corto? Esto es "compresión de datos". "Duplicación" es un concepto con un significado relativo. Parece que no hay datos repetidos dentro de un cierto rango, o no hay muchos datos repetidos. Ampliar el rango de datos puede revelar más repeticiones.
Para dar un ejemplo simple: es difícil comprimir un montón de archivos jpg usando zip y rar normal, pero es posible comprimir rar con estado sólido. La razón es: el archivo jpg en sí ya está. en un formato comprimido y un solo jpg Es difícil encontrar datos duplicados que puedan usarse en archivos, por lo que es difícil comprimir ya sea usando zip o rar normal, porque ambos necesitan dividir el archivo comprimido en dos partes. Todos necesitan separar los archivos comprimidos uno por uno. Pero para rar sólido, debe comprimir todos los archivos jpg que deben comprimirse en su totalidad. Hay datos duplicados en estos jpg, por ejemplo, todos tienen el mismo encabezado de archivo (incluidas varias tablas de datos), lo que significa que. El espacio de compresión es muy grande. Hasta donde yo sé, los archivos Flash también usan una técnica similar para comprimir archivos jpg: si se usan varios archivos jpg en un archivo Flash, se pueden comprimir con un solo encabezado.
Por supuesto, no hay almuerzo gratis en el mundo. Como se indica en el archivo de ayuda de WinRAR v3.42, el método de compresión de estado sólido también tiene algunas limitaciones al tiempo que mejora la tasa de compresión:
La compresión de estado sólido puede mejorar la tasa de compresión, especialmente cuando se agregan grandes cantidades de archivos pequeños, pero también tiene algunas desventajas importantes
La actualización de archivos comprimidos sólidamente existentes es más lenta para los ya existentes. archivos comprimidos sólidos;
Para descomprimir un solo archivo de un archivo sólido, primero se deben analizar todos los archivos que lo preceden. Esto hace que la eliminación de archivos de archivos sólidos sea más lenta que la eliminación de archivos de archivos normales. Sin embargo, al descomprimir todos los archivos en un archivo sólido, la velocidad de descompresión no se ve afectada.
Si algún archivo del archivo sólido está dañado, no se podrán extraer todos los archivos de la extensión dañada. Por lo tanto, se recomienda utilizar registros de recuperación al crear archivos comprimidos de estado sólido si están almacenados en medios como disquetes.
Cuando
El archivo comprimido rara vez se actualiza;
Cuando no necesita extraer archivos o partes de archivos del archivo comprimido con frecuencia;
La compresión de estado sólido es útil cuando la eficiencia de la compresión es más importante que la velocidad de compresión.
En correspondencia con el comentario anterior sobre "acceso aleatorio", los archivos Solid RAR son probablemente los archivos menos adecuados del mundo para el acceso aleatorio: si necesita acceder a un archivo en un paquete Solid RAR, debe comience desde el principio del paquete y avance hasta el archivo.
3. Seguridad
La seguridad aquí incluye varios aspectos: seguridad del sistema de archivos, seguridad de protección con contraseña y seguridad de datos de archivos.
Dado que el sistema operativo en sí no prestó suficiente atención a la seguridad de los archivos cuando se formuló 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 no tiene otros atributos adicionales. propiedad de seguridad.
Cuando apareció el formato rar, la seguridad del sistema de archivos sólo podía referirse a DOS, que es similar a zip. Pero, después de todo, rar es un formato cerrado y solo el autor tiene la última palabra sobre cómo cambiarlo. Por lo tanto, cuando NTFS apareció en Windows e introdujo atributos de seguridad extendidos del sistema de archivos, rar también lo siguió activamente, por lo que ahora debería decirse. que el formato rar 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 a que zip es un formato abierto y un código fuente abierto, el software para descifrar contraseñas zip apareció antes y con mayor frecuencia. Al principio, la amenaza de descifrado por fuerza bruta no era grande. Lo que realmente asestó un golpe fatal a la seguridad de las contraseñas zip fue el conocido método de ataque de texto plano: si se conoce el contenido descifrado de una determinada sección del archivo zip cifrado (texto cifrado, texto cifrado). ) El contenido real (texto sin formato, texto sin formato) se puede introducir de forma inversa en la contraseña de cifrado zip. Bajo la amenaza de este método de ataque y las restricciones legales sobre contraseñas en algunos países, la conocida organización de código abierto zlib anunció que abandonará permanentemente el soporte para el cifrado zip. Para obtener instrucciones relevantes, consulte el sitio web de zlib (sin embargo, en el. código fuente publicado por zlib. Si busca con atención, aún puede encontrar los códigos originales relacionados con el cifrado y descifrado).
Recuerdo que cuando apareció rar por primera vez, al igual que zip, no podía enumerar el contenido de los archivos cifrados, pero sí los nombres de los archivos cifrados. Más tarde, tal vez asustado por los métodos conocidos de ataque de texto sin formato, agregó una opción de "nombre de archivo cifrado" para que incluso los archivos en el archivo rar cifrado no fueran visibles y el atacante ni siquiera pudiera adivinar el texto sin formato.
El formato rar se lanzó más tarde que el formato zip. Ha aprendido suficientes lecciones de seguridad y utiliza el algoritmo de cifrado simétrico AES recomendado por el Instituto Nacional de Estándares y Tecnología (NIST), que se utiliza actualmente. Reconocida por tener alta seguridad, la longitud de la clave es de 128 bits. La longitud de la clave es de 128 bits. Antes de que se violara ASE (el NIST creía que no se violaría durante 30 años), solo podíamos recurrir a métodos de fuerza bruta, por lo que se debería decir que la seguridad de las contraseñas es mayor que zip. El archivo de ayuda de WinRAR 3.42 lo describe de esta manera:
El formato ZIP utiliza un algoritmo de cifrado privado. Los archivos RAR se cifran utilizando el estándar AES-128 más potente. Si necesita cifrar información importante, es mejor elegir el formato de archivo comprimido RAR. Para garantizar una seguridad total, la longitud de la contraseña debe tener al menos 8 caracteres. No utilice palabras de ningún idioma como contraseña. Es mejor 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. Tenga en cuenta que 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 una información adicional especial llamada "Registro de recuperación".
Si el archivo RAR tiene un registro de recuperación, en caso de daño físico al medio o pérdida de 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 y, por tanto, es más débil que RAR en términos de seguridad de datos.
Aunque el archivo RAR en sí admite la grabación de recuperación, WinRAR desactiva esta opción de forma predeterminada y, al activarla, el tamaño del archivo RAR comprimido aumentará (el aumento porcentual está relacionado con la configuración). lo que puede causar que algunas personas se sientan incómodas (he visto a algunas personas en foros quejarse del tamaño de los archivos RAR comprimidos). Básicamente inútil.
4. Apertura
El contraste de apertura es obvio: el formato zip no solo es un formato de archivo completamente abierto, sino que también tiene una organización de código abierto dedicada para proporcionar código fuente operativo, y hay pocas restricciones sobre el uso multiplataforma; rar El formato es completamente confidencial. El autor solo proporciona el código fuente requerido para la descompresión, pero no el código fuente requerido para la compresión.
Las organizaciones de código abierto zip más famosas son zlib e InfoZip, cada una de las cuales tiene su propio enfoque: zlib se centra en la compresión de buffers de memoria, por lo que organizaciones de código abierto como como png, e incluso programas jar de java. Los núcleos provienen de zlib y los paquetes jar que salen son, naturalmente, archivos zip estándar. InfoZip se centra en operaciones de archivos (incluidas las contraseñas); En términos de operaciones de archivos (incluida la protección con contraseña), InfoZip no parece ser tan utilizado como zlib, pero personalmente creo que en realidad es bastante fácil de usar, siempre que se requieran algunas modificaciones necesarias en su código fuente.
En la página web de la organización png, encuentro muy interesante el origen del formato png: un grupo de personas que hacen png en realidad originalmente hizo el formato gif, pero debido a que Unisys comenzó a pasar al formato gif. -El algoritmo de compresión LZW cobró derechos de autor. Enfadados, estas personas simplemente propusieron el formato png: gran formato: gran formato, gran formato. En pocas palabras, formato png: las estructuras grandes todavía usan estructuras segmentadas, pero el algoritmo de compresión central usa zlib de código abierto, y el efecto de compresión es más fuerte que el LZW de GIF en la mayoría de los casos. Dado que no existen restricciones de derechos de autor, png se usa ampliamente en el campo de los gráficos estáticos. Si no hubiera propuesto soporte de animación a tiempo y se hubiera vuelto popular en Internet, se estima que el gif habría 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 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 con la compatibilidad.
5. Conclusión
Las siguientes opiniones son opiniones puramente personales y son solo para referencia y no tienen ningún significado orientativo:
Si necesita hacerlo con frecuencia al azar acceder a paquetes comprimidos, entonces deberías usar zip en lugar de rar. Aunque volver a comprimir el archivo rar descargado en un archivo zip será problemático una vez, te ahorrará innumerables dolores de cabeza en el futuro.
Solo debes usar rar si necesitas compresión de volumen (por ejemplo, si algunos sitios web tienen restricciones en el tamaño de los archivos cargados). De hecho, sólo en este caso usaría rar; de lo contrario, zip sería una obviedad.