SAP HMAC-SHA256-HEX加密示例

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.
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值