SAP HMAC-SHA256-HEX加密示例
  RdEelXhuDp09 2023年11月19日 23 0


1.方法1:CL_ABAP_HMAC->CALCULATE_HMAC_FOR_CHAR

DATA: lo_digest     TYPE REF TO cx_abap_message_digest,
          lv_error_text TYPE string.

    TRY.
* create the signature with the key and the request string
        cl_abap_hmac=>calculate_hmac_for_char(
          EXPORTING
            if_algorithm           = 'SHA256'                                            "Hash Algorithm
            if_key                 = cl_abap_hmac=>string_to_xstring( i_secret_key )     "HMAC Key
            if_data                = i_signing_string
          IMPORTING
            ef_hmacb64string       = r_hmac_result                                       "HMAC value as base64-encoded string
        ).
      CATCH cx_abap_message_digest INTO lo_digest.
        lv_error_text = lo_digest->if_message~get_text( ).
        MESSAGE e000(zbc) WITH lv_error_text.
    ENDTRY.

方法2:CL_SEC_SXML_WRITER=>HMAC

DATA: l_key     TYPE xstring,
      l_input   TYPE xstring,
      l_output  TYPE xstring,
      l_b64data TYPE string.

l_key = '617069476F536B2D38386331396130366265616334313736383335363533383435663561346333382D62657461'.
l_input = '504F53540A2F6F7264732F6F7264732D6D2F6F7264732D6D2F66696E2F61702' &&
          'F67657456656E646F720A0A617069476F416B2D623430623830393164623766' &&
          '34653939393631316562313835643831383663642D626574610A5468752C203' &&
          '035204A616E20323032332030323A35373A303120474D540A686D61632D7261' &&
          '6E646F6D3A5964723966494F776D6B5737366962567233524F754D594465415' &&
          '4496F7473750A'.

l_output = cl_sec_sxml_writer=>hmac(
 EXPORTING
   key = l_key
   input = l_input
   hash_algorithm = cl_sec_sxml_writer=>co_alg_sha256
).

CALL FUNCTION 'SSFC_BASE64_ENCODE'
  EXPORTING
    bindata                  = l_output
  IMPORTING
    b64data                  = l_b64data
  EXCEPTIONS
    ssf_krn_error            = 1
    ssf_krn_noop             = 2
    ssf_krn_nomemory         = 3
    ssf_krn_opinv            = 4
    ssf_krn_input_data_error = 5
    ssf_krn_invalid_par      = 6
    ssf_krn_invalid_parlen   = 7
    OTHERS                   = 8.


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
RdEelXhuDp09