Вычисление контрольной суммы SHA2 для строки в ABAP - PullRequest
3 голосов
/ 11 июля 2011

Я пытаюсь вычислить контрольную сумму SHA2 для строки в ABAP. Я сталкивался с функциями CALCULATE_HASH_FOR_CHAR и CALCULATE_HMAC_FOR_CHAR. Однако CALCULATE_HASH_FOR_CHAR может только вычислить SHA1 (ввод SHA2 ничего не возвращает).

В отличие от этого, CALCULATE_HMAC_FOR_CHAR, похоже, полагается на записи, хранящиеся в SecureStorage, так что это не очень полезно для меня (и я не уверен, что даст мне нужные мне результаты).

Кроме того, после просмотра того, как FM SSFH_F4_HASHALG возвращает возможные значения для алгоритмов хеширования, кажется, что возможные значения зависят от установленной версии sapseculib.

Есть идеи, как еще можно вычислить хэш SHA2 в ABAP?

Ответы [ 2 ]

3 голосов
/ 11 июля 2011

ОК, похоже, что ответ заключается в использовании класса CL_ABAP_MESSAGE_DIGEST (а затем в качестве алгоритма укажите SHA256)Эта информация содержится в примечании 1410294 (поддержка семейства SHA2 для Message Digest и HMAC) и требует определенного уровня исправления ядра и т. Д.

1 голос
/ 05 апреля 2019

Если ваше ядро ​​обновлено ( SAP-нота ), вы можете использовать алгоритм 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.
...