Herramienta de descifrado AES
Descifra AES-128/192/256: datos "Salted__" de OpenSSL (U2FsdGVkX1…), salida de CryptoJS o clave + IV en hex en CBC, GCM, CTR, CFB, OFB y ECB.
La salida usa el formato "Salted__" de OpenSSL en Base64: una sal aleatoria de 8 bytes seguida del texto cifrado. La clave y el IV se derivan de la contraseña y la sal, así que el mismo texto da un resultado distinto cada vez. Comando equivalente:
openssl enc -aes-256-cbc -d -md md5 -a -A -k '…'Se ejecuta completamente en tu navegador. Tus datos nunca se suben.
¿Qué es Descifrado AES?
Descifra texto cifrado con AES en el navegador. Lee el formato "Salted__" de OpenSSL (cadenas Base64 que empiezan por U2FsdGVkX1) producido por openssl enc y CryptoJS.AES.encrypt(text, passphrase), o texto cifrado en bruto con una clave y un IV en hex en modo CBC, CFB, CTR, OFB, ECB o GCM autenticado. El relleno se verifica, así que una clave incorrecta se indica en lugar de devolver basura.
Cómo usar Descifrado AES
- Selecciona el mismo Origen de la clave que se usó al cifrar: Contraseña (compatible con OpenSSL) para datos
U2FsdGVkX1…("Salted__"), o Clave + IV en bruto (hex) para texto cifrado en bruto. - Introduce la contraseña (y la misma Derivación de clave), o la clave y el IV en hex.
- Configura el mismo Modo y Relleno que el emisor y pega el Texto cifrado (Base64 o Hex).
- Haz clic en Descifrar. Deja la salida como texto (UTF-8) o cambia a Hex si el texto plano es binario.
Ejemplo
U2FsdGVkX19HHh9Vv809WnL0M8IWPgnpihePLw8JpDQ= (passphrase "secret", AES-256, CBC, EVP_BytesToKey MD5)
Hello, World!
Texto cifrado producido por openssl enc -aes-256-cbc -md md5 -a -k secret.
Cuándo usar Descifrado AES
Úsalo para leer datos cifrados con OpenSSL o CryptoJS, depurar por qué tu aplicación no puede descifrar algo o comprobar vectores de prueba. Necesitas la contraseña o la clave correctas: la herramienta no puede recuperar claves perdidas ni romper AES. Si el texto cifrado viene de otro producto (un ZIP, una base de datos, un gestor de contraseñas), normalmente tiene su propio formato contenedor y no se descifrará aquí.
Cómo funciona Descifrado AES
En los datos con contraseña, los primeros 16 bytes deben ser Salted__ más una sal de 8 bytes. La clave y el IV se vuelven a derivar de la contraseña y la sal con EVP_BytesToKey (MD5) o PBKDF2-HMAC-SHA256 con tu número de iteraciones, exactamente como hace openssl enc -d, y después se descifra el resto. Con una clave en bruto se usan directamente la clave y el IV en hex. Tras descifrar en CBC/ECB, el relleno PKCS#7 se comprueba byte a byte: un desajuste casi siempre significa una clave, un IV, un modo o un tamaño de clave incorrectos. En GCM, Web Crypto verifica la etiqueta de 16 bytes del final antes de mostrar ningún texto plano.
Casos de Uso Comunes
- Descifrar una cadena
U2FsdGVkX1…deopenssl enc -aes-256-cbc -a - Comprobar un valor cifrado por
CryptoJS.AES.encrypten una app web - Verificar el texto cifrado + etiqueta AES-GCM producido por tu backend
- Averiguar qué tamaño de clave o modo se usó probando los ajustes probables
- Descifrar datos de prueba al depurar una API o una integración
Nota de Seguridad
El descifrado se hace en local; las contraseñas y el texto plano nunca salen de tu dispositivo. Solo GCM demuestra que los datos no se modificaron.
Preguntas Frecuentes
¿Qué significa "Relleno no válido" o "contraseña incorrecta"?
El último bloque descifrado no terminaba en un relleno PKCS#7 válido. Revisa la contraseña, el tamaño de clave (128/192/256), el modo y la derivación de clave (MD5 o PBKDF2 y sus iteraciones). OpenSSL 1.1+ usa por defecto -md sha256 sin -pbkdf2, que no está soportado aquí: vuelve a cifrar con -md md5 o -pbkdf2.
¿Puede descifrar la salida de CryptoJS?
Sí. CryptoJS.AES.encrypt(text, "passphrase").toString() usa el mismo formato Salted__ con AES-256-CBC y EVP_BytesToKey/MD5, que es el ajuste predeterminado aquí.
Mi texto cifrado no empieza por U2FsdGVkX1. ¿Y ahora?
Entonces se cifró con una clave en bruto. Cambia el Origen de la clave a Clave + IV en bruto (hex) e introduce la clave y el IV que usó el programa. Algunos programas anteponen el IV al texto cifrado; sepáralo e introdúcelo en el campo IV.
¿Por qué la salida descifrada parece caracteres aleatorios?
En los modos de flujo (CTR, CFB, OFB) no hay relleno que verificar, así que una clave incorrecta produce bytes aleatorios. La herramienta los indica como UTF-8 no válido; cambia la salida a Hex si esperas datos binarios.