sábado, 4 de marzo de 2017

Cifrado Triple DES (3DES) en Java desde Genexus

¡Hola a todos!

Hace ya un tiempo tuve la nececidad de implementar la comunicación con una pasarela de pagos para un cliente que quería realizar ventas desde su sitio web. Una de las exigencias en cuanto a seguridad al momento de consumir los servicios web era el encriptado de los datos con el alogoritmo de cifrados Triple DES.
En ese momento, los desarrollos para ese cliente estaban hechos en GX9 (Dev. U7 - Java U6, actualmente está en Evolution) y por lo tanto no había una solución nativa para resolver el tema de la encriptación con ese algoritmo.
La solución entonces fuer desarrollar la encriptación y desencriptación directamente en java y luego utilizar esa clase desde genexus como una clase externa.

La opción que se utilizó del algoritmo de cifrado triple DES consiste basicamente en tener un mensaje a encriptar/desencriptar, una clave compartida y un vector de inicialización compartido. A partir de la combinación de estos tres datos se obtiene el texto encriptado/desencriptado que se necesita.