在ABAP中计算字符串的SHA2校验和

时间:2011-07-11 12:42:00

标签: abap

我正在尝试计算ABAP中字符串的SHA2校验和。我遇到过函数CALCULATE_HASH_FOR_CHAR和CALCULATE_HMAC_FOR_CHAR。但是,CALCULATE_HASH_FOR_CHAR只能计算SHA1(输入SHA2不返回任何内容)。

相比之下,CALCULATE_HMAC_FOR_CHAR似乎依赖于SecureStorage中维护的条目,所以这对我来说并没有什么帮助(我不确定它会给我我需要的结果)。

此外,在看到FM SSFH_F4_HASHALG如何返回哈希算法的可能值之后,似乎可能的值取决于您已安装的sapseculib的版本。

我有什么想法可以在ABAP中计算SHA2哈希值?

2 个答案:

答案 0 :(得分:3)

好的,似乎答案是使用类CL_ABAP_MESSAGE_DIGEST(然后指定SHA256作为算法)。此信息在注释1410294(支持消息摘要和HMAC的SHA2系列)中,需要一定的内核补丁级别等。

答案 1 :(得分:1)

假设您的内核是最新的(SAP Note),则可以按以下方式使用SHA512算法:

DATA result type string.
TRY.
  cl_abap_message_digest=>calculate_hash_for_char(
    EXPORTING
      if_algorithm = 'SHA512'
      if_data      = 'My String to Hash'
    IMPORTING
      ef_hashstring = result
  ).
CATCH cx_root.
  " Eh, what're you gonna do?
ENDTRY.