Librerías criptográficas AES/SHA256 para XSengine

Introducción

Lo reconozco, aunque XSengine está de capa caída para SAP se sigue utilizando en muchas partes, sobretodo para todos aquellos que siguen en NEO.

En su dia necesite generar claves en SHA256 y codificar cierta información mediante un sistema de cifrado, así que me decante por AES. Hoy os presento unas librerías que podéis importar a vuestro XSEngine para vuestros proyectos.

Pero antes y sin profundizar mucho en criptografía, tampoco soy experto en la materia. Pero para resumir os cuento:

  • SHA256: Se utiliza para generar una clave Hash de longitud fija a partir de una información. Este tipo de codificación (que es muy difícil de descodificar) se utiliza principalmente para verificar flujos de datos. Un ejemplo podría ser almacenar un password en una base de datos, de manera que, una vez generada la clave, solo con el valor original de esta clave podemos obtener el mismo hash. Por lo que un administrador de sistema no podría conocer nuestra clave mirando la base de datos.
  • AES: Esta codificación, a diferencia de la anterior es por bloques y se utiliza por una parte un valor de entrada (puede ser un JSON) y una clave privada de encriptación. De esta manera, el valor de entrada quedará codificado y solo las personas que posean la clave de encriptación podrán recuperar el dato. Por lo que a diferencia del caso anterior la encriptación es bidireccional.

Importar las librerias

En el siguiente enlace encontrareis un proyecto en XS de ejemplo con los ficheros de encriptación en la carpeta Libs ( también encontrareis una librería para codificar en base64 ) :

https://github.com/enric11/SAPXSHanaCryptographic/tree/master/CryptoExample

En el fichero test.xsjs se encuentra un ejemplo de como ejecutar las funciones, aunque como veréis son bastante sencillas.

Importando librerias

Como cualquier librería en XS, mediante el comando $.import podremos importar las librerías (previamente copiadas en nuestro proyecto).

$.import("CryptoExample.libs", "aesCrypt");
var aesCrypt = $.CryptoExample.libs.aesCrypt;

$.import("CryptoExample.libs", "SHA256");
var SHA256 = $.CryptoExample.libs.SHA256;

SHA256

Con la función «SHA256(input)» y como parámetro el contenido a encriptar obtendremos el código hash encriptado.

var hash = SHA256.SHA256(input);

AES

En este caso, necesitaremos un parámetro extra con el valor de la clave secreta que usaremos para encriptar y desencriptar. Utilizaremos las funciones encrypt(input,»SecretKey»,256) y decrypt(encript,»SecretKey»,256). Los parámetros usados son: el valor a encriptar o desencriptar, la clave privada y el tamaño del bloque.

var encript = aesCrypt.encrypt(input,"SecretKey",256);
var decript = aesCrypt.decrypt(encript,"SecretKey",256);

Como veis gracias a la adaptación de estas librerías Js para el motor XS podreis añadir algo mas de seguridad a vuestras aplicaciones si así se necesita.

Por último, Suscribete y comparte en redes para estar a la última.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.