Herramienta de cifrado AES (AES-128/192/256)

Cifra texto con AES-128/192/256 en CBC, GCM, CTR, CFB, OFB o ECB. Modo contraseña compatible con OpenSSL o clave + IV en hex. Funciona en tu navegador.

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 -md md5 -a -A -k '…'

Se ejecuta completamente en tu navegador. Tus datos nunca se suben.

¿Qué es Cifrado AES?

Cifra texto o datos hex con AES, el cifrado por bloques estándar (FIPS 197). Puedes derivar la clave de una contraseña en el formato "Salted__" de OpenSSL, para que openssl enc y CryptoJS puedan descifrar el resultado, o indicar una clave y un IV en bruto en hex para interoperar con código. Se admiten los modos CBC, CFB, CTR, OFB, ECB y GCM autenticado.

Cómo usar Cifrado AES

  1. Deja el Origen de la clave en Contraseña (compatible con OpenSSL) y escribe una Contraseña, o cambia a Clave + IV en bruto (hex) e introduce la clave y el IV exactos en hex.
  2. Elige el Modo y el Relleno (CBC con PKCS#7 es el valor predeterminado de OpenSSL); con claves en bruto también puedes elegir GCM y datos autenticados adicionales opcionales.
  3. Escribe o pega el Texto plano (o cambia la codificación de entrada a Hex para datos binarios).
  4. Haz clic en Cifrar, elige Base64 o Hex como Codificación de salida y copia el texto cifrado.

Ejemplo

Entrada
Key 2b7e151628aed2a6abf7158809cf4f3c, IV 000102030405060708090a0b0c0d0e0f, mode CBC, padding None, hex plaintext 6bc1bee22e409f96e93d7e117393172a
Salida
7649abac8119b246cee98e9b12e9197d

Vector de prueba NIST SP 800-38A F.2.1, codificación de salida Hex.

Cuándo usar Cifrado AES

Úsalo para producir datos de prueba para una aplicación que usa AES, cifrar un fragmento que descifrarás con OpenSSL o CryptoJS, o aprender cómo los modos y el relleno cambian la salida. Para datos reales prefiere GCM (o CBC más un MAC aparte), porque CBC/CTR/CFB/OFB por sí solos no detectan manipulaciones. Evita ECB: bloques idénticos dan texto cifrado idéntico. Para archivos o secretos a largo plazo usa una herramienta dedicada como age, GnuPG o las API de cifrado de tu plataforma.

Cómo funciona Cifrado AES

AES cifra bloques de 16 bytes con una clave de 128, 192 o 256 bits (10, 12 o 14 rondas). En el modo contraseña se genera una sal aleatoria de 8 bytes y la clave y el IV se derivan con EVP_BytesToKey de OpenSSL (MD5, una iteración: el valor predeterminado de openssl enc -md md5 y de CryptoJS) o con PBKDF2-HMAC-SHA256 (openssl enc -pbkdf2); la salida es el Base64 de Salted__ + sal + texto cifrado. En el modo en bruto se usan directamente tu clave y tu IV en hex y solo se devuelve el texto cifrado. CBC y ECB usan relleno PKCS#7 (o ceros/ninguno); CFB, OFB y CTR son modos de flujo sin relleno. GCM usa la API Web Crypto del navegador con un nonce de 12 bytes y añade la etiqueta de autenticación de 16 bytes. La implementación supera los vectores de prueba de NIST SP 800-38A y de GCM.

Casos de Uso Comunes

  • Crear un texto cifrado compatible con openssl enc -aes-256-cbc sin terminal
  • Reproducir la salida de CryptoJS.AES.encrypt(text, passphrase) para depurar
  • Generar vectores de prueba AES-GCM (texto cifrado + etiqueta) para una implementación de backend
  • Cifrar un secreto corto con una clave de 256 bits y un IV en bruto para pegarlo en un archivo de configuración
  • Demostrar por qué el modo ECB filtra patrones frente a CBC o CTR

Nota de Seguridad

Todo se ejecuta localmente en tu navegador; no se sube nada. EVP_BytesToKey con MD5 es una derivación de claves débil y rápida que se mantiene por compatibilidad: para cualquier cosa importante, elige PBKDF2 con muchas iteraciones o una clave aleatoria en bruto. El cifrado sin autenticación (CBC, CTR, CFB, OFB) no detecta modificaciones.

Preguntas Frecuentes

¿La salida es compatible con OpenSSL?

Sí. En el modo contraseña el resultado es exactamente lo que produce openssl enc -aes-256-cbc -md md5 -a -A -k <passphrase> (EVP_BytesToKey con MD5), o -pbkdf2 -iter N si eliges PBKDF2-HMAC-SHA256. Añade -d para descifrar. La página muestra el comando correspondiente bajo el campo de contraseña.

¿Por qué obtengo un texto cifrado distinto cada vez?

El modo contraseña usa una sal aleatoria nueva en cada cifrado, así que la clave, el IV y el texto cifrado cambian. Es intencionado; cualquiera de las salidas se descifra con la misma contraseña. El modo de clave en bruto es determinista para la misma clave, IV y entrada.

¿Qué modo debo elegir?

GCM, porque además autentica los datos (el descifrado falla si se cambió algo). Si el receptor solo admite openssl enc, usa CBC: enc de OpenSSL no admite GCM. Nunca reutilices un nonce GCM ni un contador CTR con la misma clave.

¿Qué diferencia hay entre contraseña y clave en bruto?

Una contraseña se convierte en clave mediante una función de derivación de claves y una sal que se guarda en la salida. Una clave en bruto se usa exactamente como se escribe (16, 24 o 32 bytes para AES-128/192/256) junto con un IV que debes compartir por separado.

Explora más categorías