Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(255),
contrasena VARBINARY(255)
);
CREATE TABLE usuarios ( id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(255), contrasena VARBINARY(255) );
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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
INSERT INTO usuarios (nombre, contrasena)
VALUES ('Usuario1', AES_ENCRYPT('contrasena_secreta', 'clave_secreta'));
INSERT INTO usuarios (nombre, contrasena) VALUES ('Usuario1', AES_ENCRYPT('contrasena_secreta', 'clave_secreta'));
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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT nombre, AES_DECRYPT(contrasena, 'clave_secreta') AS contrasena_descifrada
FROM usuarios;
SELECT nombre, AES_DECRYPT(contrasena, 'clave_secreta') AS contrasena_descifrada FROM usuarios;
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.

0

Deja un comentario