Saltar al contenido principal
Estas funciones implementan el cifrado y descifrado de datos mediante el algoritmo AES (Estándar de Cifrado Avanzado). La longitud de la clave depende del modo de cifrado: 16, 24 y 32 bytes de longitud para los modos -128-, -196- y -256-, respectivamente. La longitud del vector de inicialización es siempre de 16 bytes (se ignoran los bytes que excedan los 16).

HMAC

Introducido en: v25.12.0 Calcula el HMAC (código de autenticación de mensajes basado en hash) para el mensaje dado mediante el algoritmo hash especificado y la clave secreta. Algoritmos hash compatibles:
  • blake2b512
  • blake2s256
  • md4
  • md5
  • md5-sha1
  • mdc2
  • ripemd (alias: RIPEMD160, ripemd)
  • ripemd160
  • rmd160 (alias: RIPEMD160, rmd160)
  • sha1
  • sha224
  • sha256
  • sha3-224
  • sha3-256
  • sha3-384
  • sha3-512
  • sha384
  • sha512
  • sha512-224
  • sha512-256
  • shake128
  • shake256
  • sm3
  • ssl3-md5 (alias: MD5, ssl3-md5)
  • ssl3-sha1 (alias: SHA1, ssl3-sha1)
  • whirlpool
Sintaxis
Argumentos
  • mode — Nombre del algoritmo hash (sin distinción entre mayúsculas y minúsculas). Admitidos: md5, sha1, sha224, sha256, sha384, sha512. String
  • message — Mensaje que se va a autenticar. String
  • key — Clave secreta para HMAC. String
Valor devuelto Devuelve una cadena binaria que contiene el resumen HMAC. String Ejemplos HMAC-SHA256 básico
Query
Response
Diferentes algoritmos de hash
Query
Response
Modo sin distinción entre mayúsculas y minúsculas
Query
Response

aes_decrypt_mysql

Introducido en: v20.12.0 Descifra datos cifrados por la función AES_ENCRYPT de MySQL. Produce el mismo texto plano que decrypt con los mismos argumentos. Cuando key o iv son más largos de lo que normalmente deberían ser, aes_decrypt_mysql seguirá el comportamiento de aes_decrypt de MySQL: “plegar” key e ignorar los bits sobrantes de IV. Admite los siguientes modos de descifrado:
  • aes-128-ecb, aes-192-ecb, aes-256-ecb
  • aes-128-cbc, aes-192-cbc, aes-256-cbc
  • aes-128-cfb128
  • aes-128-ofb, aes-192-ofb, aes-256-ofb
Sintaxis
Argumentos
  • mode — Modo de descifrado. String
  • ciphertext — Texto cifrado que debe descifrarse. String
  • key — Clave de descifrado. String
  • iv — Opcional. Vector de inicialización. String
Valor devuelto Devuelve una String descifrada. String Ejemplos Descifrar datos de MySQL
Query
Response

aes_encrypt_mysql

Introducido en: v20.12.0 Cifra el texto de la misma manera que la función AES_ENCRYPT de MySQL. El texto cifrado resultante puede descifrarse con la función AES_DECRYPT de MySQL. Produce el mismo texto cifrado que la función encrypt con las mismas entradas. Cuando key o iv son más largos de lo habitual, aes_encrypt_mysql sigue el comportamiento de aes_encrypt de MySQL: ‘pliega’ key e ignora los bits sobrantes de iv. Los modos de cifrado compatibles son:
  • aes-128-ecb, aes-192-ecb, aes-256-ecb
  • aes-128-cbc, aes-192-cbc, aes-256-cbc
  • aes-128-ofb, aes-192-ofb, aes-256-ofb
Sintaxis
Argumentos
  • mode — Modo de cifrado. String
  • plaintext — Texto que se debe cifrar. String
  • key — Clave de cifrado. Si la clave es más larga de lo que requiere mode, se aplica el plegado de claves específico de MySQL. String
  • iv — Opcional. Vector de inicialización. Solo se tienen en cuenta los primeros 16 bytes. String
Valor devuelto Cadena binaria de texto cifrado. String Ejemplos Comparación de entradas idénticas
Query
Response
El cifrado falla con una clave larga
Query
Response
Compatibilidad con MySQL
Query
Response
Un IV más largo da el mismo resultado
Query
Response

decrypt

Introducido en: v20.12.0 Esta función descifra una cadena binaria cifrada con AES mediante los siguientes modos:
  • aes-128-ecb, aes-192-ecb, aes-256-ecb
  • aes-128-cbc, aes-192-cbc, aes-256-cbc
  • aes-128-ofb, aes-192-ofb, aes-256-ofb
  • aes-128-gcm, aes-192-gcm, aes-256-gcm
  • aes-128-ctr, aes-192-ctr, aes-256-ctr
  • aes-128-cfb, aes-128-cfb1, aes-128-cfb8
Sintaxis
Argumentos
  • mode — Modo de descifrado. String
  • ciphertext — Texto cifrado que debe descifrarse. String
  • key — Clave de descifrado. String
  • iv — Vector de inicialización. Obligatorio para los modos -gcm y opcional para los demás. String
  • aad — Datos autenticados adicionales. No se descifrará si este valor es incorrecto. Solo funciona en los modos -gcm; en los demás, lanza una excepción. String
Valor devuelto Devuelve el texto plano descifrado. String Ejemplos Descifrado correcto de datos cifrados
Query
Response
Descifrado incorrecto de datos cifrados
Query
Response

encrypt

Introducido en: v20.12.0 Cifra texto plano y lo convierte en texto cifrado mediante AES en uno de los siguientes modos:
  • aes-128-ecb, aes-192-ecb, aes-256-ecb
  • aes-128-cbc, aes-192-cbc, aes-256-cbc
  • aes-128-ofb, aes-192-ofb, aes-256-ofb
  • aes-128-gcm, aes-192-gcm, aes-256-gcm
  • aes-128-ctr, aes-192-ctr, aes-256-ctr
  • aes-128-cfb, aes-128-cfb1, aes-128-cfb8
Sintaxis
Argumentos
  • mode — Modo de cifrado. String
  • plaintext — Texto que debe cifrarse. String
  • key — Clave de cifrado. String
  • iv — Vector de inicialización. Obligatorio para los modos -gcm; opcional para los demás. String
  • aad — Datos autenticados adicionales. No se cifran, pero afectan al descifrado. Solo funcionan en los modos -gcm; en los demás, lanza una excepción. String
Valor devuelto Devuelve el texto cifrado como una cadena binaria. String Ejemplos Ejemplo de cifrado
Query
Response
Ejemplo con el modo GCM
Query
Response

tryDecrypt

Introducido en: v22.10.0 Similar a la función decrypt, pero devuelve NULL si el descifrado falla al usar una clave incorrecta. Sintaxis
Argumentos
  • mode — Modo de descifrado. String
  • ciphertext — Texto cifrado que se debe descifrar. String
  • key — Clave de descifrado. String
  • iv — Opcional. Vector de inicialización. Obligatorio para los modos -gcm; opcional para otros modos. String
  • aad — Opcional. Datos autenticados adicionales. No se podrá descifrar si este valor es incorrecto. Funciona solo en los modos -gcm; en otros modos, lanza una excepción. String
Valor devuelto Devuelve la cadena descifrada o NULL si el descifrado falla. Nullable(String) Ejemplos Crear tabla e insertar datos
Query
Response
Última modificación el 2 de julio de 2026