mysql.h


DES_ENCRYPT

DES_ENCRYPT(string_to_encrypt [, (key_number | key_string) ] )

Encripta la cadena con la clave dada usando el algoritmo Triple-DES. Esta función sólo funciona si MySQL fue configurado con soporte SSL. La clave de encriptado a usar se elige del modo siguiente:

Argumento Descripción
Sólo un argumento Se usa la primera clave del fichero de claves des.
key number Se usa la clave dada (0-9) del fichero de claves des.
key string Se usa la cadena para encriptar.

La cadena resultante será una cadena binaria donde el primer carácter será CHAR(128 | key_number). El valor 128 se añade para hacer más fácil reconocer una clave de encritado. Si se usa una cadena como clave, el key_number será 127. En caso de error, la fucnión devuelve NULL. La longitud de la cadena resultante será new_length= org_length + (8-(org_length % 8))+1. El formato del fichero de claves des es el siguiente:

key_number des_key_string
key_number des_key_string

Cada key_number debe ser un número en el rango de 0 a 9. Las líneas del fichero pueden estar en cualquier orden. des_key_string es la cadena que se usará para encriptar el mensaje. Entre el número y la clave debe haber al menos un espacio. La primera clave es la clave por defecto que se usará si no se especifica ningún argumento de clave en DES_ENCRYPT(). Se puede indicar a MySQL que lea nuevos valores de claves desde el fichero usando el comando FLUSH DES_KEY_FILE. Para esto se necesita el privilegio Reload_priv. Una de las ventajas de tener un conjunto de claves por defecto es que proporciona a la aplicaciones una forma de verificar la existencia de valores de columna encriptados, sin pedir del usuario final el derecho a desencriptar esos valores.

mysql> SELECT customer_address FROM customer_table WHERE
       crypted_credit_card = DES_ENCRYPT("credit_card_number");