Avalados por :

Implementación de Cifrado AES256 en SAP y Fiori con CryptoJS y oData

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 13 Vistas
0
Cargando...
Introducción

Recientemente tuvimos un requerimiento en nuestra organización para implementar cifrado para la transmisión de datos desde Fiori a SAP con oData. El requerimiento era cifrar AES256 la información compartida entre los sistemas.

Clases/Funciones de SAP y Librerías JS utilizadas en el proceso:



  • Desde la librería crypto-js, se utiliza el archivo AES.js para implementar la lógica de generación de clave AES y cifrado de información.

  • Se utiliza CL_SEC_SXML_WRITER para el descifrado de la información.

  • Se utiliza SCMS_STRING_TO_XSTRING para convertir cadena a xstring.

  • /ui2/cl_abap2json se utiliza para convertir xstring a cadena.


Importar librería JS a tu proyecto


Imagen1




  • Ahora debemos importar la librería Javascript aes.js en nuestro controlador principal o en el controlador que desees usar.

  • Agrega el siguiente comando en la parte superior de tu controlador "jQuery.sap.require("tuDirectorioDeArchivoAESSubido")"



Imagen2



Generar Clave de Cifrado y Cifrado (en JS de Fiori)


Utilicé la siguiente lógica para generar la clave para el cifrado en JavaScript y enviarla a SAP a través del servicio oData.

*IV: En criptografía, un vector de inicialización (IV) es una entrada a un primitivo criptográfico que se utiliza para proporcionar el estado inicial. El IV suele ser aleatorio. La aleatorización es crucial para algunos esquemas de cifrado para lograr seguridad semántica, una propiedad por la cual el uso repetido del esquema bajo la misma clave no permite a un atacante inferir relaciones entre segmentos (potencialmente similares) del mensaje cifrado.

Nota: Utiliza tu propio IV creado aleatoriamente. Y la longitud de la clave generada aleatoriamente debe ser de 32 caracteres.

Cifrado:
// Este es nuestro Mensaje Secreto Cifrado
let data = "ESTA ES MI CLAVE SECRETA";
//vector de inicialización para mayor seguridad adicional
let iv = 'EsteEs33221321NuestroIV1ar234567';
//Tu clave debe tener una longitud de 32 caracteres, debes generar tu propia clave aleatoria cada vez
let key = 'ESTAESNUESTRAKEY1234567ESTACION01';

// preparar clave e IV para el cifrado CryptoJS
let fkey = CryptoJS.enc.Utf8.parse(key);
let fiv = CryptoJS
                
                
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?