Зашифровать строку в ABAP и расшифровать в JavaScript - PullRequest
0 голосов
/ 08 июня 2018

У меня есть класс ABAP, который кодирует строку как код qr и отправляет этот код по электронной почте.Позже код будет декодирован приложением SAPUI5 на основе JavaScript.

Я не хочу, чтобы каждый мог декодировать строку, стоящую за этим кодом, с помощью некоторого базового приложения для сканирования штрих-кодов.Вот почему я ищу некоторые идеи для шифрования строки в ABAP и расшифровки ее с помощью JavaScript.Может также с простым алгоритмом?Просто строка не должна давать полезную информацию тому, кто самостоятельно декодирует код qr.

Спасибо за ваши советы и идеи!

Ответы [ 2 ]

0 голосов
/ 06 августа 2019

В ABAP есть класс cl_hard_wired_encryptor, который делает именно то, что вы хотите.Он использует шифрование base64, поэтому его легко расшифровать в JS.

Вот пример кода:

DATA: input_string  TYPE string VALUE `This is the house that Jack built`.

TRY.
    DATA(encrypted_string) = NEW cl_hard_wired_encryptor( )->encrypt_string2string( the_string = input_string ).
  CATCH cx_encrypt_error.
ENDTRY.

IF sy-subrc EQ 0.
  cl_demo_output=>begin_section( `Initial` ).
  cl_demo_output=>write_text( input_string ).
  cl_demo_output=>begin_section( `Encrypted` ).
  cl_demo_output=>write_text( encrypted_string ).
ELSE.
  cl_demo_output=>display( 'Error while encryption' ).
ENDIF.

TRY.
    DATA(reverted_string) = NEW cl_hard_wired_encryptor( )->decrypt_string2string( the_string = encrypted_string ).
  CATCH cx_encrypt_error.
ENDTRY.

IF sy-subrc EQ 0.
  cl_demo_output=>begin_section( `Decrypted` ).
  cl_demo_output=>write_text( reverted_string ).
  cl_demo_output=>display( ).
ELSE.
  cl_demo_output=>display( 'Error while decryption' ).
ENDIF.
0 голосов
/ 21 июня 2018

ABAP имеет функцию SSF_KRN_ENVELOPE для шифрования данных с помощью RSA с использованием сертификата.Вы можете использовать его, я думаю, что есть библиотека JS для расшифровки.Но данные огромны из-за стандартного охвата.

Я предпочитаю использовать библиотеку https://github.com/Sumu-Ning/AES, в результате вы можете зашифровать более мелкие данные и не нужно использовать только сертификаты ключей.

...