• ABAP字符串的加密与解密


    FIEB_PASSWORD_DECRYPT:字符串解密;
    FIEB_PASSWORD_ENCRYPT:字符串加密。
    旧版本的可以用。

     1 PARAMETERS:str1 type char32 OBLIGATORY,
     2             str2 TYPE char32,
     3             str3 TYPE char32.
     4 INITIALIZATION.
     5 clear:str2,str3.
     6 AT SELECTION-SCREEN output.
     7   if not str1 is INITIAL.
     8   CALL FUNCTION 'FIEB_PASSWORD_ENCRYPT'
     9     EXPORTING
    10        im_decrypted_password        = STR1
    11    IMPORTING
    12       EX_ENCRYPTED_PASSWORD         = STR2 .
    13   CALL FUNCTION 'FIEB_PASSWORD_DECRYPT'
    14     EXPORTING
    15        im_encrypted_password        = STR2
    16    IMPORTING
    17       EX_DECRYPTED_PASSWORD         = STR3   .
    18 endif.


    新版中可以使用类接口CL_HARD_WIRED_ENCRYPTOR的静态方法实现。

     1 DATA:   o_encryptor        TYPE REF TO cl_hard_wired_encryptor,
     2         o_cx_encrypt_error TYPE REF TO cx_encrypt_error.
     3 DATA:   v_ac_string  TYPE string VALUE 'Welcome to ABAP',
     4         v_ac_xstring TYPE xstring,
     5         v_en_string  TYPE string,
     6         v_en_xstring TYPE xstring,
     7         v_de_string  TYPE string,
     8         v_de_xstring TYPE xstring,
     9         v_error_msg  TYPE string.
    10 START-OF-SELECTION.
    11   CREATE OBJECT o_encryptor.
    12   WRITE / 'Encryption - String to String'.
    13   TRY.
    14       CALL METHOD o_encryptor->encrypt_string2string
    15         EXPORTING
    16             the_string = v_ac_string
    17           RECEIVING
    18             result       = v_en_string.
    19     CATCH cx_encrypt_error INTO o_cx_encrypt_error.
    20       CALL METHOD o_cx_encrypt_error->if_message~get_text
    21           RECEIVING
    22             result = v_error_msg.
    23       MESSAGE v_error_msg TYPE 'E'.
    24   ENDTRY.
    25   WRITE:/ 'Actual String: ', v_ac_string.
    26   WRITE:/ 'Encrypted String: ', v_en_string.
    27   SKIP.
    28   WRITE / 'Decryption - String to String'.
    29   TRY.
    30       CALL METHOD o_encryptor->decrypt_string2string
    31         EXPORTING
    32             the_string = v_en_string
    33           RECEIVING
    34             result       = v_de_string.
    35     CATCH cx_encrypt_error INTO o_cx_encrypt_error.
    36       CALL METHOD o_cx_encrypt_error->if_message~get_text
    37           RECEIVING
    38             result = v_error_msg.
    39       MESSAGE v_error_msg TYPE 'E'.
    40   ENDTRY.
    41 
    42   WRITE:/ 'Encrypted String: ', v_en_string.
    43   WRITE:/ 'Decrypted String: ', v_de_string.
    44   SKIP. 

    -----------------------------------------------------------------------------

     1 report ztest1 MESSAGE-ID F4.
     2 DATA: o_encryptor        TYPE REF TO cl_hard_wired_encryptor,
     3       o_cx_encrypt_error TYPE REF TO cx_encrypt_error.
     4 
     5 DATA: v_ac_string  TYPE string VALUE 'Welcome to ABAP',
     6       v_ac_xstring TYPE xstring,
     7       v_en_string  TYPE string,
     8       v_en_xstring TYPE xstring,
     9       v_de_string  TYPE string,
    10       v_de_xstring TYPE string,
    11       v_error_msg  TYPE string.
    12 
    13 START-OF-SELECTION.
    14 
    15 * Create object for Encryption
    16   CREATE OBJECT o_encryptor.
    17 * *&---------------------------------------------------------------------*
    18 * Encryption - String to String
    19 *&---------------------------------------------------------------------*
    20 WRITE / 'Encryption - String to String'.
    21   TRY.
    22       CALL METHOD o_encryptor->encrypt_string2string
    23         EXPORTING
    24           the_string = v_ac_string
    25         RECEIVING
    26           result     = v_en_string.
    27     CATCH cx_encrypt_error INTO o_cx_encrypt_error.
    28       CALL METHOD o_cx_encrypt_error->if_message~get_text
    29         RECEIVING
    30           result = v_error_msg.
    31       MESSAGE v_error_msg TYPE 'E'.
    32   ENDTRY.
    33 
    34   WRITE:/ 'Actual String: ', v_ac_string.
    35   WRITE:/ 'Encrypted String: ', v_en_string.
    36   SKIP.
    37 
    38 *&---------------------------------------------------------------------*
    39 * Decryption - String to String
    40 *&---------------------------------------------------------------------*
    41 WRITE / 'Decryption - String to String'.
    42   TRY.
    43       CALL METHOD o_encryptor->decrypt_string2string
    44         EXPORTING
    45           the_string = v_en_string
    46         RECEIVING
    47           result     = v_de_string.
    48     CATCH cx_encrypt_error INTO o_cx_encrypt_error.
    49       CALL METHOD o_cx_encrypt_error->if_message~get_text
    50         RECEIVING
    51           result = v_error_msg.
    52       MESSAGE v_error_msg TYPE 'E'.
    53   ENDTRY.
    54 
    55   WRITE:/ 'Encrypted String: ', v_en_string.
    56   WRITE:/ 'Decrypted String: ', v_de_string.
  • 相关阅读:
    问题集
    第04次作业-树
    06-图
    05-查找
    04-树
    03-栈和队列
    02-线性表
    01-抽象数据类型
    C语言--总结报告
    C语言--函数嵌套
  • 原文地址:https://www.cnblogs.com/mingdashu/p/6292684.html
Copyright © 2020-2023  润新知