martes, 28 de noviembre de 2017

Ejemplo 2017-11: Tabla encriptada.

Resumen: 
Mantenimiento formulario con datos encriptados.

Descripción: 
En el post anterior (https://codigo-programacion-17.blogspot.pe/2017/10/ejemplo-2017-10-logging-encriptado.html), utilicé el método AES para encriptar el texto del log. Entonces, la misma librería fue la que usé para grabar los datos encriptados de una tabla de registros.

Dado que teníamos una fecha límite (30 días) para tener el programa con las especificaciones requeridas, opté por usar Grails para construir el proyecto. En este ejemplo, quiero describir la forma de encriptar los datos. También aclarar, que otras formas de resolver esto era:

  1. Emplear los método de encriptación de MySql, 
  2. Configurar Hibernate para que haga la conversión.
Primero tuve que crear el proyecto, el dominio y el controlador. En el clase de dominio agregar los métodos para transformar los datos necesarios.


Antes de insert o actualizar (beforeInsert, beforeUpdate) se encripta las información. Y cuando se lee de la tabla (afterLoad) se desencripta.

Obviamente, este es un caso muy simple. Pero, si lo hubiera creando procedimiento de base de datos hubiera significado desencriptar en cada consulta. O, encriptar cada campo en cada transacción.

Finalmente, la ventaja que con GORM tenemos los métodos findBy* que son muy útiles.

Configuración: 
Grails 3.3.1
Gradle 3.5
Java 1.8