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



我试图在ABAP中计算字符串上的SHA2校验和。我遇到了函数CALCULATE_HASH_FOR_CHAR和CALCULATE_HMAC_FOR_CHAR。然而,CALCULATE_HASH_FOR_CHAR只能计算SHA1(输入SHA2没有返回任何值)。

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

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

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

好的,似乎答案是使用类CL_ABAP_MESSAGE_DIGEST(然后指定SHA256作为算法)。该信息在注释1410294(支持消息摘要和HMAC的sha2家族)中,并且需要特定的内核补丁级别等。

假设您的内核是最新的(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.

相关内容

  • 没有找到相关文章

最新更新