Cómo cifrar y descifrar texto

Cinco cifrados con contraseña en una sola pantalla: AES, DES, RC4, Rabbit y TripleDES. Elige un algoritmo, pega el texto, pulsa Cifrar y el resultado aparece debajo; pega ese resultado con la misma contraseña y pulsa Descifrar para recuperar el original.

Los cifrados se ejecutan dentro de la página con CryptoJS. El texto y la contraseña no salen del navegador, y por eso la herramienta sigue funcionando sin conexión.

  1. Pega o escribe el texto en el campo de arriba. AES viene seleccionado; cambia de algoritmo solo si tienes que reproducir un cifrado que ya existe.
  2. Escribe la contraseña en el campo de clave. La misma contraseña hará falta para leer el resultado más tarde: aquí no se guarda nada.
  3. Pulsa Cifrar. La salida está en Base64 y empieza por U2FsdGVkX1, la marca del contenedor con sal al estilo OpenSSL.
  4. Para deshacerlo, pega el cifrado en el mismo campo, selecciona el algoritmo que lo generó y pulsa Descifrar.

Qué es exactamente la salida

El contenedor con sal aleatoria

Cada resultado es un contenedor al estilo OpenSSL: los ocho bytes Salted__ (U2FsdGVkX1 en Base64), ocho bytes de sal aleatoria y después el cifrado. La clave y el IV se derivan de la contraseña y de esa sal con EVP_BytesToKey basado en MD5, la misma derivación que usa openssl enc con -md md5.

Como la sal es aleatoria, el mismo texto con la misma contraseña da cada vez una cadena distinta. Dos salidas idénticas serían un fallo; que sean diferentes es lo esperado.

Qué algoritmo se usa en realidad

AES es aes-256-cbc, DES es des-cbc y TripleDES es des-ede3-cbc: los tres se descifran con OpenSSL, por ejemplo con openssl enc -d -aes-256-cbc -md md5 -k "contraseña". RC4 usa una clave de 256 bits, el doble de los 128 bits que deriva por defecto openssl enc -rc4, así que ese comando no puede leer la salida. Rabbit solo existe en CryptoJS y no tiene equivalente en OpenSSL.

AES, DES y TripleDES son cifrados de bloque en modo CBC con relleno PKCS#7; RC4 y Rabbit son cifrados de flujo, así que su salida mide lo mismo que el texto original.

Descifrar con la contraseña equivocada

AES, DES y TripleDES fallan la comprobación de relleno y no devuelven nada; RC4 y Rabbit producen bytes que casi nunca son UTF-8 válido. En ambos casos la página avisa ahora del fallo y vacía la salida, en lugar de dejar el texto anterior en pantalla.

El contenedor no lleva comprobación de integridad —ni MAC ni etiqueta autenticada—, así que un cifrado modificado no se detecta y una contraseña incorrecta no se distingue de un texto dañado. Compara una muestra pequeña conocida antes de que un valor descifrado entre en un proceso automático.

Lo que esta página no hace

Trabaja con texto, no con archivos, y no firma, verifica ni guarda nada: sin historial, sin claves almacenadas y sin resultado después de recargar.

DES, RC4 y TripleDES siguen disponibles por compatibilidad con datos existentes. Una clave derivada de una contraseña en modo CBC no es una construcción moderna; para trabajo nuevo usa AES-GCM o ChaCha20-Poly1305, que esta página no puede generar.

Herramientas recientes: