COMPRESS
Comprime una cadena y devuelve el resultado como una cadena binaria . Esta función requiere haber sido compilada con una biblioteca de compresión como zlib. De lo contrario , el valor devuelto es siempre NULL. La cadena comprimida puede descomprimirse con UNCOMPRESS ()
mysql> SELECT COMPRESS("clave");
+-------------------+
| COMPRESS("clave") |
+-------------------+
| ♣ x£K╬I,K♣ ♠↑☻♀ |
+-------------------+
1 ROW IN SET (0.00 sec)
UNCOMPRESS
Al contrario que el anterior, este descomprime una cadena comprimida por la función COMPRESS (). Si el argumento no es un valor comprimido, el resultado es NULL. Esta función requiere haber sido compilada con una biblioteca de compresión como zlib. De lo contrario, el valor devuelto es siempre NULL.
Descomprime una cadena comprimida.
mysql> SELECT UNCOMPRESS('clave'), PASSWD FROM EMPLOYEES_FJB WHERE EMPLOYEE_ID=10;
+---------------------+-------------------+
| UNCOMPRESS('clave') | PASSWD |
+---------------------+-------------------+
| NULL | ♣ x?KÎI,K♣ ♠↑☻♀ |
+---------------------+-------------------+
COMPRESS y UNCOMPRESS unidos en la misma instruccion
mysql> SELECT UNCOMPRESS(COMPRESS("contrasenya");
+-------------------------------------+
| UNCOMPRESS(COMPRESS("contrasenya")) |
+-------------------------------------+
| contrasenya |
+-------------------------------------+
UNCOMPRESSED_LENGTH
Devuelve la longitud que la cadena comprimida tenía antes de ser comprimido.
mysql> SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('a',30)));
-> 30
ENCODE
Encripta la cadena str usando como contraseña pass_str. El resultado es una cadena binaria de la misma longitud que string. Si se quiere almacenar el resultado en una columna, se debe usar una columna de tipo BLOB.
Syntax:
mysql> ENCODE(crypt_str,pass_str)
mysql> ENCODE(texto_a_encriptar,contraseña de encriptacion);
mysql> SELECT ENCODE('ALTAIR876','clave1');
+------------------------------+
| ENCODE('ALTAIR876','clave1') |
+------------------------------+
| ÇâP£½å└Þ\ |
+------------------------------+
DECODE
Desencripta la cadena encriptada crypt_str usando como contraseña pass_str.
[[code]]
[[code format="sql"]]
Syntax:
mysql> DECODE(crypt_str,pass_str)
mysql> DECODE(texto_encriptado,contraseña de encriptacion);
mysql> SELECT DECODE('ALTAIR876','clave1');
+----------------------------------------+
| DECODE('ALTAIR876','clave1') |
+----------------------------------------+
| º■^├►x|‗H |
+----------------------------------------+
DES_ENCRYPT
Parecido al anterior pero esta vez encripta la cadena con la clave dada usando el algoritmo Triple_DES. Esta funcion solo 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 función devuelve NULL.
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.
DES_ENCRYPT(crypt_str, [key_str]);
mysql> DES_ENCRYPT(texto_para_encriptar,contraseña de encriptacion);
mysql> SELECT DES_ENCRYPT('contrasenya','mypassward');
+-----------------------------------------+
| DES_ENCRYPT('contrasenya','mypassward') |
+-----------------------------------------+
| SºÑ+┐ÍN│☻â£Þ»H> |
+-----------------------------------------+
DES_DECRYPT
Desencripta una cadena encriptada. Esta función sólo funciona si MySQL ha sido configurado para soportar SSL. Si no se proporciona el argumento key_string.
Examina el primer byte de la cadena encriptada para determinar el número de clave DES que se usó en la cadena original encriptada, a continuación lee la clave desde el fichero de claves "des" para desencriptar el mensaje. Para que esto funcione, el usuario debe poseer el privilegio SUPER. Si se proporciona un argumento key_string, esa cadena se usa como clave para desencriptar el mensaje. Si la cadena string_to_decrypt parece no estar encriptada, MySQL devolverá la cadena string_to_decrypt dada. En caso de error, la función devuelve NULL.
DES_DECRYPT(crypt_str, [key_str]);
mysql> DES_DECRYPT(texto_encriptado,contraseña de encriptacion);
mysql> SELECT DES_DECRYPT('contrasenya','mypassword');
+---------------------------------------------+
| DES_DECRYPT('SºÑ+┐ÍN│☻â£Þ»H>','mypassword') |
+---------------------------------------------+
| contrasenya |
+---------------------------------------------+
ENCRYPT
Encripta str usando la llamada del sistema Unix crypt(). El argumento salt debe ser una cadena con dos caracteres.
(Desde MySQL 3.22.16, puede ser más larga de dos caracteres.)
Este ignora todos menos los primeros 8 caracteres de str, al menos en algunos sistemas. Este comportamiento viene determinado por la implementación de la llamada de sistema crypt() subyacente. Si crypt() no está disponible en el sistema, ENCRYPT() siempre devuelve NULL. Estas funciones existen en todas las plataformas.
mysql> SELECT ENCRYPT("prueba");
+-------------------+
| ENCRYPT("prueba") |
+-------------------+
| QSNo4pQTBgMTE |
+-------------------+