Funciones de cifrado

Protege y verifica datos con las funciones criptográficas de MySQL: genera hashes con MD5, SHA1 y SHA2, cifra y descifra datos sensibles con AES_ENCRYPT y AES_DECRYPT, y genera bytes aleatorios con RANDOM_BYTES.

La seguridad de los datos almacenados en una base de datos va más allá del control de acceso con usuarios y privilegios. En muchos escenarios es necesario cifrar datos sensibles como contraseñas, números de tarjeta o información personal, o generar hashes para verificar la integridad de los datos sin almacenar el valor original. MySQL proporciona un conjunto de funciones criptográficas nativas que permiten realizar estas operaciones directamente en las consultas SQL.

Esta sección cubre las funciones de hash y cifrado disponibles en MySQL: MD5 para generar hashes de 128 bits ampliamente utilizados en verificación de integridad, SHA1 y SHA2 para hashes más seguros con longitudes configurables de 224 a 512 bits, AES_ENCRYPT y AES_DECRYPT para cifrado simétrico bidireccional con el estándar AES que permite almacenar datos cifrados y recuperarlos posteriormente con la clave correcta, y RANDOM_BYTES para generar secuencias de bytes criptográficamente seguras útiles como sales, tokens o claves de sesión.

Es importante entender la diferencia entre hash y cifrado: un hash es una función unidireccional que no permite recuperar el dato original, ideal para contraseñas; el cifrado simétrico como AES es bidireccional y permite recuperar el dato original con la clave correcta, adecuado para datos que necesitan ser leídos posteriormente. Esta sección explica cuándo usar cada enfoque y las mejores prácticas de seguridad en MySQL.

Artículos