簡體   English   中英

在ABAP中加密字符串並在JavaScript中解密

[英]Encrypt string in ABAP and decrypt in JavaScript

我有一個ABAP類,該類將字符串編碼為qr碼,然后將此代碼作為電子郵件發送。 稍后,該代碼將由基於JavaScript的SAPUI5應用解碼。

我不希望每個人都可以使用一些基本的條形碼掃描儀應用程序解碼該二維碼后面的字符串。 這就是為什么我要尋找一些關於在ABAP中加密字符串並使用JavaScript解密的想法。 也許還有一個簡單的算法? 只是字符串不應該將有用的信息提供給自己解碼二維碼的人。

感謝您的提示和想法!

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.

ABAP具有SSF_KRN_ENVELOPE函數,用於使用證書通過RSA加密數據。 您可以使用它,我認為有用於解密它的js庫。 但是由於封裝了標准技術,因此數據量巨大。

我更喜歡使用https://github.com/Sumu-Ning/AES庫,因此可以使用更多小數據進行加密,而無需僅使用證書密鑰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM