Cifrar/descifrar archivos AEAD

Cifra un archivo con contraseña usando AES-256-GCM o (X)ChaCha20-Poly1305 y Argon2id, y vuelve a descifrarlo. El archivo no sale del navegador.

Tus datos de entrada y archivos no salen del navegador

Cifrar

Archivo

Los archivos grandes se procesan por bloques en el navegador.

Más memoria y pasadas hacen más lento adivinar la contraseña, pero cifrar y descifrar tarda más y necesita esa memoria. Los ajustes se guardan en el archivo y el descifrado los usa solo.

Descifrar

Archivo
Usa la contraseña introducida en el panel de cifrado.
Salida

Elija un archivo y una contraseña y luego cifre o descifre: el archivo resultante y su encabezado aparecerán aquí.

Resultado
Encabezado
En esta página

Cifrar/descifrar archivos AEAD protege un archivo con contraseña mediante cifrado autenticado (AES-256-GCM, ChaCha20-Poly1305 o XChaCha20-Poly1305) y lo devuelve a su forma original. Todo ocurre en tu navegador: ni el archivo ni la contraseña se suben.

Funcionalidad detallada

La contraseña se refuerza con Argon2id (64 MiB de memoria, 3 pasadas) y una sal aleatoria de 16 bytes para obtener una clave de 256 bits, así que probar contraseñas es lento incluso con hardware potente. Después un módulo Rust/WebAssembly cifra el archivo en bloques de 1 MiB; cada bloque lleva su propio nonce (prefijo aleatorio más un contador) y una etiqueta de autenticación de 16 bytes. La barra de progreso muestra velocidad y tiempo restante, y Cancelar detiene el trabajo entre bloques.

Derivación de clave (Argon2id) fija el coste: Ligero, Estándar (predeterminado), Fuerte, Máximo (1 GiB, para escritorio) o tu propia memoria, pasadas y carriles. Un coste mayor ralentiza en la misma proporción adivinar la contraseña y cada cifrado y descifrado. Los ajustes no predeterminados se escriben en la cabecera autenticada (9 bytes más), así que para descifrar solo hace falta la contraseña; los valores por debajo del mínimo de OWASP muestran un aviso.

El resultado es un contenedor .aead en formato MDT3: una cabecera de 35 bytes (47 con XChaCha20) con el algoritmo, la sal y el prefijo del nonce, seguida de los bloques. La cabecera y un indicador de «último bloque» se autentican con cada bloque, de modo que una contraseña incorrecta, cualquier byte modificado, bloques reordenados, un archivo recortado (incluso justo en el límite de un bloque) o datos añadidos al final se rechazan en lugar de producir un resultado dañado. El algoritmo se lee de la cabecera: para descifrar solo hace falta la contraseña.

Los contenedores creados por versiones anteriores de la herramienta (MDT2) se siguen descifrando; ese formato antiguo no detecta un corte exacto en un límite de 1 MiB, y la herramienta lo avisa tras descifrar. La contraseña se usa tal cual; con archivos antiguos también se prueba sin espacios al principio y al final, porque las versiones anteriores los recortaban. El archivo cifrado o descifrado se arma en memoria antes de descargarlo, así que el límite práctico es la RAM del dispositivo.

Ejemplos prácticos

Cifrar antes de subir a la nube: report.pdf (2,5 MiB) con AES-256-GCM se convierte en report.pdf.aead: 2,5 MiB más 35 bytes de cabecera más 3 × 16 bytes de etiquetas. El campo Encabezado empieza por 4d445433, los bytes ASCII de MDT3.

Descifrar en otro equipo: abre la herramienta, elige report.pdf.aead en el panel de descifrado, escribe la misma contraseña y descarga report.pdf. Un archivo sin extensión .aead se guarda con .dec añadido.

Transferencia interrumpida: si solo llegaron los primeros 2 MiB de report.pdf.aead, el descifrado se detiene con «Error al descifrar: contraseña incorrecta, o el archivo está dañado o fue modificado.» en lugar de devolver un PDF más corto.

Archivo vacío: un archivo de 0 bytes produce igualmente un contenedor de 51 bytes (cabecera más un bloque vacío autenticado), así que incluso un contenedor vaciado se detecta.

Cómo usar esta herramienta

  1. Elige el archivo a cifrar

    En el panel Cifrar pulsa Elegir archivo bajo Archivo.

  2. Elige algoritmo y contraseña

    Selecciona el Algoritmo (AES-256-GCM por defecto) y escribe una Contraseña. Si empieza o termina con un espacio aparece un aviso, porque los espacios cuentan.

  3. Cifra y descarga

    Pulsa Cifrar archivo, espera a que termine la barra de progreso y pulsa Descargar para guardar <nombre>.aead.

  4. Descifra más tarde

    En el panel Descifrar elige el archivo .aead, escribe la misma contraseña en el campo de arriba, pulsa Descifrar archivo y luego Descargar.

Consejos y mejores prácticas

  • No hay recuperación de contraseña: si se pierde, nadie puede descifrar el archivo, tampoco esta herramienta.
  • Una frase de contraseña larga es mejor que una contraseña corta y «compleja»; Argon2id frena los intentos, pero no salva 123456.
  • XChaCha20-Poly1305 usa un prefijo de nonce aleatorio de 128 bits: elígelo si cifras muchísimos archivos con la misma contraseña.
  • «Contraseña incorrecta» y «archivo modificado» dan el mismo error a propósito: la comprobación de la etiqueta no los distingue.
  • Vuelve a cifrar un archivo MDT2 antiguo para pasarlo a MDT3 y obtener detección de recortes.
  • Tras la primera visita la página funciona también sin conexión.