84 - Encriptación de datos (encode - decode)


Problema:

Retomamos la tabla "usuarios".

Eliminamos la tabla si existe:

 drop table if exists usuarios;

Creamos la tabla:

 create table usuarios (
  nombre varchar(30),
  clave varchar(10)
 );

Podemos ingresar registros encriptando la clave:

 insert into usuarios values ('MarioPerez',encode('Marito','octubre'));

La forma más segura es no transferir la contraseña a través de la conexión, para ello podemos almacenar la clave en una variable y luego insertar la clave encriptada:

 select @clave:=encode('RealMadrid','ganador');
 insert into usuarios values ('MariaGarcia',@clave);

Veamos los registros ingresados:

 select * from usuarios;

Desencriptamos la clave del usuario "MarioPerez":

 select decode(clave,'octubre') from usuarios
  where nombre='MarioPerez';

Desencriptamos la clave del usuario "MariaGarcia":

 select decode(clave,'ganador') from usuarios
  where nombre='MariaGarcia';

Guardamos la clave para el siguiente usuario en una variable llamada "@clavecodificada" y luego ingresamos el registro con la clave encriptada:

 select @clavecodificada:=encode('River','SQL');
 insert into usuarios values ('JuanJoseTorres',@clavecodificada);

Guardamos la clave para el siguiente usuario en una variable llamada "@clavecodificada" y luego ingresamos el registro con la clave encriptada, usamos la misma contraseña para la encriptación:

 select @clavecodificada:=encode('Boca','SQL');
 insert into usuarios values ('AnaMariaJuarez',@clavecodificada);

Ahora desencriptamos las claves al momento de la consulta los usuarios:

 select decode(clave,'SQL') from usuarios;

Note que se muestran aquellas claves que fueron encriptadas con la contraseña "SQL", las demás fueron mal desencriptadas porque la contraseña al encriptarlas fue otra.




Retornar