Encode/Decode Bas64

Nov. 13, 2019 | 83 views

Encode/Decode Data sử dụng Base64

Một ngày đẹp trời nhận được yêu cầu phải mã hóa dữ liệu trong SAP, SAP có cung cấp khá nhiều hàm mã hóa như base64, MD5, SHA...AES.

Thử implement tạm cái mã hóa sử dụng base64, để rõ hơn về base64 các bạn có thểm xem trên wiki tại đây

Encode:

Sử dụng function module SCMS_STRING_TO_XSTRING để chuyển dữ liệu từ string sang xstring, sau đó dùng function SCMS_BASE64_ENCODE_STR để mã hóa dạng base64.

DATA: LV_XSTRING TYPE XSTRING.
*   Convert String To Xstring
    CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
      EXPORTING
        TEXT   = I_INPUT
      IMPORTING
        BUFFER = LV_XSTRING
      EXCEPTIONS
        FAILED = 1
        OTHERS = 2.
*   Convert Xstring To Base64 String
    CALL FUNCTION 'SCMS_BASE64_ENCODE_STR'
      EXPORTING
        INPUT  = LV_XSTRING
      IMPORTING
        OUTPUT = R_OUTPUT.

 

Decode:

Để chuyển dữ liệu từ base64 sang dạng string ban đầu. Thì trước tiên sử dụng SCMS_BASE64_DECODE_STR  để chuyển dữ liệu từ base64 sang dạng xstring,

từ xstring sang binary rồi sang string

    " Decode
    CALL FUNCTION 'SCMS_BASE64_DECODE_STR'
      EXPORTING
        INPUT  = I_INPUT
      IMPORTING
        OUTPUT = LV_XSTRING
      EXCEPTIONS
        FAILED = 1
        OTHERS = 2.
    " Convert Xstring to binary data
    CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
      EXPORTING
        BUFFER        = LV_XSTRING
      IMPORTING
        OUTPUT_LENGTH = LV_LEN
      TABLES
        BINARY_TAB    = LT_CONTENT[].
    " Convert Binary data to String
    CALL FUNCTION 'SCMS_BINARY_TO_STRING'
      EXPORTING
        INPUT_LENGTH = LV_LEN
      IMPORTING
        TEXT_BUFFER  = R_OUTPUT
      TABLES
        BINARY_TAB   = LT_CONTENT[]
      EXCEPTIONS
        FAILED       = 1
        OTHERS       = 2.

Link source code