Avalados por :

Implementação de Criptografia e Descriptografia no SAP utilizando AES256 e Base64

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

Introdução


Recentemente tivemos um requisito em nossa organização para implementar criptografia para toda a transmissão de dados que ocorre do SAP para sistemas externos, a fim de ter uma camada adicional de segurança. O requisito era criptografar com AES256 e codificar em Base64 as informações compartilhadas entre os sistemas. A criptografia/descriptografia foi feita com uma chave comum gerada no SAP e compartilhada por meio de um e-mail automatizado do sistema.

Classes/Módulos de Função SAP utilizados no processo:



  • CL_SEC_SXML_WRITER é usado para implementar a lógica de geração da chave AES e criptografia/descriptografia das informações.

  • Estamos usando a FM SCMS_BASE64_<EN/DE>CODE_STR para codificar/decodificar em Base64 as informações.


Fluxo de Processo de Alto Nível


A seguir estão os passos e o código de exemplo que usamos para criptografia/descriptografia.


Gerar Chave de Criptografia


Usamos a seguinte lógica para gerar a chave de criptografia que é armazenada em uma tabela e depois compartilhada com sistemas externos.
*Código de Exemplo para gerar a Chave:
data: random          type xstring, wa_bench_config type   zhr_bench_config.
  call method cl_sec_sxml_writer=>generate_key
      exporting
        algorithm = cl_sec_sxml_writer=>co_aes256_algorithm
      receiving
        key       = random.
    data(lr_conv_key) = cl_abap_conv_out_ce=>create( ).

    lr_conv_key->write( data = random ).
    e_key = lr_conv_key->get_buffer( ).


Descriptografar


O Sistema Externo envia dados criptografados com AES e codificados em Base64 e no SAP usamos a seguinte lógica para descriptografar o texto.
 data:  i_key_xstring type xstring, i_iv type xstring.
i_iv = '00000000000000000000000000000000'.
 if i_text is not initial.
      call function 'SCMS_BASE64_DECODE_STR'
        exporting
          input  = i_text
*         UNESCAPE       = 'X'
        importing
          output = i_xstring
*       EXCEPTIONS
*         FAILED = 1
*         OTHERS = 2
        .
      if sy-subrc <> 0    
            
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?