Curso de MySQL
Consultas, lista de correo 'C++ Con Clase' 'MySQL Con Clase' página de entrada Tabla de contenido Contactar con Webmaster
Curso Sentencias Funciones API C

SQL

Funciones

Matemáticas Tiempo Cadena Conversión Control de Flujo Encriptado DECODE DES_DECRYPT DES_ENCRYPT ENCODE ENCRYPT MD5 OLD_PASSWORD PASSWORD SHA SHA1 Información Genéricas GROUP BY

AES_ENCRYPT
AES_DECRYPT

AES_ENCRYPT(string,key_string) 
AES_DECRYPT(string,key_string)

Estas funciones permiten encriptar y desencriptar datos usando el algoritmo oficial AES (Advanced Encryption Standard), conocido previamente como Rijndael. Se usa una codificación con una clave de 128 bits de longitud, pero se puede extender a 256 modificando el fuente. Se ha seleccionado 128 bits porque es mucho más rápido y normalemente es proporciona suficiente seguridad. Los argumentos de entrada pueden ser de cualquier longitud. Si cualquier argumento es NULL, el resultado de la función es también NULL. Como AES es un algoritmo a nivel de bloque, se usa relleno parapara codificar cadenas de longitud irregular y entonces la longitud de la cadena resultante puede ser calculada como 16*(trunc(string_length/16)+1). Si AES_DECRYPT() detecta datos inválidos o un relleno incorrecto, devuelve NULL. Además, es posible que AES_DECRYPT() devuelva una valor no NULL (seguramente basura) si los datos de entrada o la clave son inválidos. Se pueden usar la funciones AES para almacenar datos en un formato encriptado modificando las consultas:

INSERT INTO t VALUES (1,AES_ENCRYPT('text','password'));

Se puede obtener mayor seguridad no transfiriendo la clave sobre la conexión para cada consulta, esto puede conseguirse almacenandola en una variable del servidor durante la conexión:

SELECT @password:='my password';
INSERT INTO t VALUES (1,AES_ENCRYPT('text',@password));

AES_ENCRYPT() y AES_DECRYPT() fueron añadidas en la versión 4.0.2, y pueden considerarse como las funciones de encritado criptográfico más seguras disponibles actualmente en MySQL.