ToolActToolAct

Descomprimir ZIP

Sube archivos ZIP para previsualizar y extraer archivos, descarga individual o extrae todo

Subir Archivo ZIP

Arrastra un archivo ZIP aquí, o haz clic para seleccionar

Soporta archivos en formato .zip

¿Qué es la Extracción ZIP?

La extracción ZIP abre un archivo comprimido y restaura los archivos almacenados dentro. Es útil cuando recibes un paquete comprimido, quieres inspeccionar el contenido antes de descargar todo, necesitas solo un archivo o deseas verificar nombres y tamaños antes de confiar en el archivo. Para archivos normales, ZIP es sin pérdida y el contenido extraído debería coincidir con el original. Pero extraer no hace seguro un contenido desconocido. Un ZIP puede contener nombres engañosos, carpetas inesperadas, datos que se expanden muchísimo o ejecutables que no deberían abrirse sin revisión. Esta herramienta del navegador lee el archivo localmente y permite descargar elementos seleccionados, útil para comprobaciones pequeñas. No reconstruye siempre el árbol completo en disco ni sustituye una revisión de seguridad.

Cómo usar

Cómo usar

  1. Arrastra un archivo ZIP al área de carga o haz clic en 'Seleccionar archivo ZIP'
  2. Consulta la lista de archivos y la información del contenido del comprimido
  3. Haz clic en 'Descargar' junto a un archivo para extraerlo
  4. Haz clic en 'Extraer todo' para descargar todos los archivos como un ZIP

Seguridad al extraer

  • Revisa la lista de archivos antes de descargar los elementos extraídos, especialmente si el archivo proviene de una fuente desconocida.
  • Ten cuidado con los archivos ejecutables, los archivos comprimidos anidados y los nombres de archivo sospechosos.

Casos de uso

Inspecciona un ZIP antes de extraer nadaSuelta un archivo .zip y la página construye un árbol de carpetas ordenado con iconos de tipo de archivo, carpetas expandibles y tamaños calculados. Puedes ver rápidamente si el archivo contiene los documentos, recursos o código esperados antes de descargar archivos individuales. El lector recorre el registro End of Central Directory al final del archivo para localizar el directorio central, por lo que un .zip truncado o añadido accidentalmente que aún termine con un marcador EOCD válido listará sus entradas declaradas incluso cuando algunos encabezados locales estén dañados.
Descarga solo los archivos que realmente necesitasSelecciona un archivo, una carpeta completa, varios elementos anidados o todo el contenido del archivo, luego descarga los archivos seleccionados desde el navegador. La lógica de selección expande las carpetas en sus archivos contenidos, de modo que puedes extraer solo los elementos necesarios de un archivo más grande.
Usa la extracción del lado del navegador para una revisión ligera del archivoJSZip lee el archivo localmente y cada archivo extraído se descarga como su propia descarga del navegador. La extracción por lotes no reconstruye el árbol de carpetas original en disco ni produce un nuevo ZIP, por lo que funciona mejor para revisión, clasificación y tareas de recuperación pequeñas en lugar de restauración completa de respaldos.
Detecta un nombre de archivo sospechoso antes de extraerloRevisa la lista de archivos en busca de dobles extensiones como report.pdf.exe, archivos de sistema ocultos o rutas que intenten escapar de un directorio con segmentos .. Trata los archivos desconocidos como no confiables aunque la fuente parezca familiar, y escanea cualquier ejecutable con antivirus antes de abrirlo. Los nombres de archivo cuyo bit 11 del flag de propósito general está activo se almacenan como UTF-8, por lo que los nombres no ASCII se decodifican correctamente, mientras que los flags ausentes pueden producir caracteres corruptos que a su vez son indicio de un archivo manipulado o reempaquetado.
Extrae un solo archivo de configuración de un ZIP de respaldo sin descargar el restoNavega por el árbol de carpetas, selecciona solo el config.json o certificado deseado y descarga únicamente esa entrada. Es una forma rápida de recuperar un archivo perdido de un respaldo de varios gigabytes sin gastar ancho de banda en las partes que no necesitas. Los archivos de más de 4 GB dependen de la extensión ZIP64, y la herramienta lee los campos extra de ZIP64 para tamaño descomprimido, tamaño comprimido y desplazamiento de encabezado local, por lo que la recuperación de un solo archivo sigue funcionando para respaldos que superan el límite clásico de 32 bits.

Principio técnico

Leer un archivo ZIP sigue el orden inverso al de escritura. El navegador recibe el archivo como un `ArrayBuffer` mediante la File API (`file.arrayBuffer()`) y el lector escanea hacia atrás desde el final del archivo buscando la firma End of Central Directory `0x06054b50` (PK\x05\x06). El EOCD ocupa como máximo 22 bytes más un comentario opcional de hasta 65.535 bytes, por lo que la ventana de búsqueda está acotada. El EOCD apunta al desplazamiento y tamaño del Directorio Central, que contiene un File Header (`0x02014b50`) por cada entrada. Cada File Header lleva los tamaños comprimido y descomprimido, CRC-32, método de compresión, nombre de archivo y el desplazamiento del Local File Header correspondiente (`0x04034b50`). Así, el lector puede buscar directamente cualquier entrada individual sin analizar las anteriores, lo que hace que la extracción de un solo archivo de una copia de seguridad de varios GB sea rápida. La descompresión depende del byte de método: `0x00` es almacenado (sin compresión, solo un memcpy), `0x08` es DEFLATE según RFC 1951 (~99% de los archivos en uso), `0x0C` es BZIP2, `0x0E` es LZMA y `0x0D` es el antiguo PPMd. Esta herramienta usa JSZip (o fflate para mayor rendimiento — el `unzipSync` de fflate decodifica un archivo DEFLATE típico de 10 MB en decenas de milisegundos, varias veces más rápido que JSZip). Después de la descompresión, se recalcula el CRC-32 de los bytes brutos y se compara con el valor del directorio central; una discrepancia indica corrupción o manipulación. Dos cuestiones de seguridad son relevantes para cualquier ruta de extracción. La primera es la vulnerabilidad Zip Slip (Snyk, 2018): un archivo malicioso puede contener entradas con secuencias de salto de ruta como `../../etc/passwd`, y un extractor ingenuo que concatene el nombre de la entrada con un directorio destino escribirá fuera de la zona prevista. La solución es normalizar la ruta concatenada con `path.resolve()` y verificar que aún comienza con el directorio destino antes de cualquier escritura. Esta herramienta ofrece cada entrada como una descarga individual del navegador mediante `URL.createObjectURL(new Blob([bytes]))` y el navegador aísla el destino, por lo que el salto de directorio no puede escapar de la carpeta de descargas del usuario, pero el mismo archivo en un extractor del lado del servidor sería explotable. En segundo lugar, los archivos cifrados no se manejan: el ZipCrypto tradicional es un cifrado de flujo de 32 bits que se rompe trivialmente con un ataque de texto plano conocido de tres bytes, y el WinZip AES-256 moderno (PKWARE APPNOTE 7.0) requiere el campo extra AE-2 con autenticación HMAC-SHA1; ninguna de las dos vías está implementada aquí. Los archivos de más de 4 GiB dependen de los campos extra de la extensión ZIP64 para tamaños y desplazamientos de 64 bits, que el analizador debe leer en lugar de los campos de 32 bits del directorio central.

  • Orden de análisis: escaneo hacia atrás desde el final del archivo en busca de la firma EOCD `0x06054b50` (máximo 22 + 65535 bytes desde el final) → busca el Directorio Central → busca cada Local File Header.
  • Métodos de compresión: `0x00` almacenado, `0x08` DEFLATE (RFC 1951, ~99% de los archivos), `0x0C` BZIP2, `0x0E` LZMA, `0x5D` PPMd.
  • Integridad: CRC-32 con polinomio `0xEDB88320` (IEEE 802.3 invertido) recalculado sobre los bytes extraídos y comparado con el valor del directorio central.
  • Zip Slip (Snyk 2018): entradas con salto de ruta `../` pueden escribir fuera del directorio de extracción; se corrige normalizando y validando la ruta resuelta antes de la escritura.
  • Implementación en el navegador: `File.arrayBuffer()` → JSZip / fflate `unzipSync()` → `URL.createObjectURL(new Blob([bytes]))` por entrada para descargas, sin viaje al servidor.
  • El cifrado no se maneja: ZipCrypto se rompe con 3 bytes de texto plano conocido; WinZip AES-256 (APPNOTE 7.0, campo extra AE-2 con HMAC-SHA1) no está implementado aquí.
  • ZIP64 (APPNOTE 4.5+) extiende los campos de tamaño/desplazamiento de 32 bits a 64 bits mediante campos extra; es necesario para archivos o entradas individuales superiores a 4 GiB (2³² − 1 bytes).

Ejemplos

Ver contenido del archivo

Visualiza la lista de archivos dentro de un archivo ZIP directamente en el navegador sin instalar software de extracción

Extraer archivos individuales

Descarga solo el archivo que necesitas del archivo ZIP sin extraer todo

Extracción por lotes

Extrae y descarga todos los archivos del archivo ZIP con un solo clic

Preguntas frecuentes

¿Se sube el ZIP para extraerlo?

No. La página lee el ZIP localmente mediante la API FileReader y descomprime las entradas en el navegador con JSZip. Los archivos nunca salen de tu dispositivo. Puedes confirmarlo en la pestaña Network mientras extraes.

¿Qué variantes de ZIP admite?

Archivos ZIP estándar con compresión DEFLATE (la variante más común). Las entradas almacenadas (sin comprimir) también funcionan. ZIP64 (para archivos de más de 4 GB) está soportado en la mayoría de versiones. Las entradas cifradas (protegidas con contraseña) y los formatos 7Z, RAR, TAR no están soportados: usa una herramienta dedicada para ellos.

¿Puedo extraer ZIPs protegidos con contraseña?

En general no. JSZip no maneja entradas cifradas con ZipCrypto ni con AES. Descífralos primero con 7-Zip o WinRAR en el escritorio, luego vuelve a empaquetar y súbelo aquí si necesitas inspeccionar la estructura.

¿Y si el ZIP tiene nombres de archivo en chino o japonés?

La página lee los nombres de archivo como UTF-8 por defecto. Los ZIPs creados en Windows antiguos pueden almacenar los nombres en GBK (chino) o Shift_JIS (japonés) sin establecer la marca UTF-8: aparecerán ilegibles. Vuelve a crear el ZIP con una herramienta compatible con UTF-8 o usa 7-Zip en el escritorio con la página de códigos correcta.

¿Cuál es el límite de tamaño de archivo?

La memoria del navegador. Los equipos de escritorio modernos manejan ZIPs de más de 1 GB; los navegadores móviles se quedan sin memoria alrededor de unos cientos de MB. Para archivos muy grandes, usa una herramienta de escritorio que lea del disco en streaming.

¿Puedo previsualizar el contenido de los archivos sin extraerlos?

Sí, para archivos de texto: pega o haz clic en cualquier entrada y la página muestra su contenido. Las imágenes se previsualizan como miniaturas. Las entradas binarias (ejecutables, ZIPs anidados) solo muestran metadatos; descárgalas para inspeccionarlas.

¿Se extraen los archivos ocultos y los dotfiles?

Sí. ZIP no tiene un concepto de atributo 'oculto': todas las entradas son visibles. Los nombres que empiezan por punto (.gitignore, .env) se extraen normalmente; trátalos como archivos ordinarios.