Elección de productos
📝

Comprobar un ZIP restaurado: detectar daños aunque coincida el número de archivos

Un ensayo reproducible con ocho archivos artificiales distingue ausencias y cambios del mismo tamaño mediante SHA256, tablas CSV y un script de práctica.

Comprobar un ZIP restaurado: detectar daños aunque coincida el número de archivos

Existe un ZIP y ha terminado de extraerlo. ¿Coincide su contenido con el original? Compare ruta relativa, tamaño en bytes y SHA256 con el inventario original. SHA256 es una huella larga calculada a partir del contenido. Permite detectar cambios aunque nombre y tamaño no cambien.

El objetivo es practicar una restauración pequeña sin sobrescribir originales y distinguir ausencias de modificaciones en la tabla. La redacción MillionsCode creó 8 archivos artificiales, los comprimió y restauró realmente, e introdujo después dos errores para comprobar su detección. No se usaron datos personales ni copias de clientes.

Medición y método con 8 archivos

Se ejecutó el 28 de septiembre de 2026 en Windows con PowerShell 7.6.0-rc.1 y Microsoft.PowerShell.Archive 1.2.5. No compara compatibilidad entre varias versiones estables. Incluye un archivo vacío, un nombre coreano con espacios, dos archivos distintos de 4 bytes, nombres iguales en subcarpetas diferentes, un binario de 256 bytes y una nota. Total: 8 archivos y 372 bytes.

Primero se registró la ruta desde la carpeta, como nested/level2/sample.txt, el tamaño y SHA256. Se comprimió la carpeta y se extrajo en otra nueva. Se compararon tamaño y huella de cada misma ruta relativa. Comparar solo nombres podría confundir dos sample.txt en carpetas distintas.

PruebaOriginalesArchivos comparadosCoincidenDiferencia
Extracción normal en carpeta nueva888Ninguna
Nueva copia omitiendo deliberadamente un archivo877Falta archivo anidado de 15 bytes
Cambiar AAAA por ZZZZ en copia separada887SHA256 distinto en archivo de 4 bytes

La primera prueba es normal. Las otras comprueban que los errores intencionados se señalan como fallos. No demuestran que la herramienta ZIP perdiera o dañara datos. La redacción omitió un archivo durante la copia y alteró contenido en otra copia después de extraer.

La tercera conserva 8 archivos y 4 bytes en el modificado. Contar archivos o comprobar tamaño total podría no detectar nada, pero la huella encontró la modificación. Número y tamaño son controles rápidos; la igualdad del contenido requiere otro paso.

Leer los CSV

restore-summary.csv resume los tres casos. restore-comparison.csv tiene 24 filas de archivos. Case es la prueba y RelativePath la posición relativa. ExpectedBytes y ActualBytes son tamaños original y comparado; las columnas SHA256 contienen las huellas.

  • MATCH: tamaño y huella coinciden para esa ruta.
  • MISSING: falta una ruta original. Tamaño real vacío significa ausencia, no cero bytes.
  • HASH_MISMATCH: mismo tamaño, huella diferente; restaure de nuevo y compruebe.
  • El script incluye SIZE_MISMATCH para tamaños distintos y UNEXPECTED para archivos extra. No se probaron esas dos ramas mediante errores específicos en estos tres casos.

En same_size_change, same-a.txt tiene 4 bytes en ambos lados. La huella original empieza por 63C1DD95… y la alterada por 96741164…. Se compararon los 64 caracteres completos. En cambio, empty.txt ya tenía cero bytes y conservó su huella en la restauración normal. Considerar dañado todo archivo vacío sería incorrecto.

Practicar antes de usar datos propios

Lea el texto del script y guárdelo como restore-lab.ps1 en una carpeta de práctica. Compruebe que no siga terminado en .ps1.txt. No recibe rutas de archivos del usuario: crea cada vez una carpeta nueva junto al script y solo comprime, restaura y modifica sus archivos artificiales. No contiene borrado de originales ni opción de sobrescritura forzada. Póngalo en una carpeta vacía, lea el código y ejecútelo con PowerShell. Si una política de empresa impide scripts, no la desactive por su cuenta; use el recorrido manual siguiente para entender el resultado.

Desde la carpeta donde guardó el script:

& '.\restore-lab.ps1'

zip_restore debe mostrar PASS y los dos errores voluntarios FAIL. Si ControlBehavedAsExpected es True en las tres filas, las condiciones probadas respondieron como se esperaba. No confunda un FAIL deliberado con el fracaso de una copia real. Abra CSV y results.json en la nueva carpeta indicada para revisar fecha, versiones y huellas completas.

Para revisar una copia real use el inventario original del momento de creación del ZIP. Compararlo con archivos actuales ya modificados puede señalar diferencias en una copia antigua correcta. Practique con duplicados de documentos importantes y restaure en una carpeta nueva sin datos. No elija la ubicación original como destino.

Las rutas siguientes son ejemplos de práctica. El primer comando comprime el origen de prueba; el segundo extrae a un destino nuevo; los últimos muestran huellas de archivos correspondientes. La carpeta adicional source aparece porque se comprimió la carpeta completa.

Compress-Archive -LiteralPath '.\source' -DestinationPath '.\trial.zip'
Expand-Archive -LiteralPath '.\trial.zip' -DestinationPath '.\restore-new'
Get-FileHash -LiteralPath '.\source\notes.txt' -Algorithm SHA256
Get-FileHash -LiteralPath '.\restore-new\source\notes.txt' -Algorithm SHA256

Get-FileHash explica comparación de contenido y SHA256 por defecto. Expand-Archive distingue destino y sobrescritura. Aquí no se usa -Force.

Lo que aún no se ha comprobado

Q. ¿PASS significa que toda la copia es segura?

Solo significa que posición, tamaño y contenido de 8 archivos artificiales coincidieron. No se midieron velocidad ni vida útil del SSD, éxito de sincronización en nube o fiabilidad de grandes copias. Fue una sola configuración; no se probaron permisos, propietarios, claves, ajustes de aplicaciones ni bases de datos abiertas. Abra además hojas y fotos en sus aplicaciones y compruebe los datos vinculados necesarios para los programas de trabajo.

Q. ¿También cubre archivos ocultos y grandes?

Compress-Archive documenta la omisión de archivos y carpetas ocultos y un límite de tamaño. No convierta este pequeño ensayo en una garantía de copia completa del sistema o de sus ajustes ocultos. No hubo archivos ocultos ni de 2 GB o más.

Q. ¿Una huella idéntica termina la comprobación?

Si el inventario está equivocado o también se altera, la coincidencia no garantiza el original auténtico. Compruebe una lista guardada por separado y su fecha. Ante ausencias o diferencias, restaure de nuevo la ruta antes de borrar originales. Inventario, huellas y apertura de documentos necesarios permiten decidir la siguiente acción con más fundamento que la simple existencia de un ZIP.

Relacionado