我正在尝试计算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哈希值?
答案 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.