Cómo Encriptar Datos en una Tabla de Base de Datos MySQL

Tiempo de lectura: 2 minutos

En este tutorial, aprenderás cómo encriptar datos sensibles en una tabla de una base de datos MySQL utilizando las funciones de encriptación proporcionadas por MySQL. La encriptación es fundamental para proteger la confidencialidad de los datos almacenados en una base de datos y garantizar su seguridad. En este ejemplo, utilizaremos las funciones AES_ENCRYPT y AES_DECRYPT para cifrar y descifrar datos.

Pasos para Encriptar Datos en una Tabla MySQL:

Paso 1: Crear la tabla de usuarios
En primer lugar, debemos crear una tabla en nuestra base de datos MySQL para almacenar los datos encriptados. En este ejemplo, crearemos una tabla llamada «usuarios» con las columnas «id», «nombre» y «contrasena». La contraseña se almacenará como VARBINARY para mantenerla encriptada.

CREATE TABLE usuarios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(255),
    contrasena VARBINARY(255)
);

Paso 2: Insertar datos en la tabla con la contraseña encriptada
A continuación, insertaremos datos en la tabla «usuarios» con la contraseña encriptada. Utilizaremos la función AES_ENCRYPT para cifrar la contraseña antes de almacenarla en la base de datos. Asegúrate de reemplazar ‘contrasena_secreta’ y ‘clave_secreta’ con tus datos reales.

INSERT INTO usuarios (nombre, contrasena)
VALUES ('Usuario1', AES_ENCRYPT('contrasena_secreta', 'clave_secreta'));

*Importante guardar bien la clave_secreta para poder recuperar los datos, si desaparece no podrás volver a recuperarlos.

Se guardará cifrado de esta forma:

Paso 3: Recuperar la contraseña descifrada
Para recuperar la contraseña descifrada cuando sea necesario, puedes utilizar la función AES_DECRYPT. La siguiente consulta te dará el nombre de usuario y la contraseña descifrada para cada registro en la tabla «usuarios». No olvides proporcionar la misma clave secreta que se usó para cifrar los datos.

SELECT nombre, AES_DECRYPT(contrasena, 'clave_secreta') AS contrasena_descifrada
FROM usuarios;

La obtendremos de esta forma:

Conclusión:
Encriptar datos en una tabla de una base de datos MySQL es una práctica importante para proteger la seguridad y la confidencialidad de los datos sensibles. En este tutorial, hemos aprendido cómo crear una tabla, insertar datos encriptados y recuperar datos descifrados utilizando las funciones AES_ENCRYPT y AES_DECRYPT de MySQL.

Recuerda mantener segura la clave secreta utilizada para la encriptación, ya que es esencial para proteger los datos. Además, implementa medidas de seguridad adicionales para garantizar la integridad y la confidencialidad de tus datos en la base de datos.

Deja un comentario