CL_ABAP_MESSAGE_DIGEST=>CALCULATE_HASH_FOR_CHAR
CALCULATE_HASH_FOR_CHAR
문자열을 MD5, SHA1, SHA256, SHA512 로 해싱
비밀번호의 해싱과 같이 여러 용도로 사용할 수 있습니다.
HMAC 해싱의 경우 CL_ABAP_HMAC 클래스나 CALCULATE_HMAC_FOR_CHAR 펑션을 이용하면 됩니다.
# 사용예시
PARAMETERS: P_TXT TYPE STRING LOWER CASE OBLIGATORY.
DATA LV_STR TYPE STRING.
START-OF-SELECTION.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
WRITE:/ 'Original Text'.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/ P_TXT.
SKIP 2.
PERFORM HASH_STRING USING: 'SHA1',
'SHA256',
'SHA512',
'MD5'.
*&---------------------------------------------------------------------*
*& Form HASH_STRING
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> P_
*&---------------------------------------------------------------------*
FORM HASH_STRING USING P_ALG.
DATA LV_ERR TYPE REF TO CX_ABAP_MESSAGE_DIGEST.
FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
WRITE:/ P_ALG.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
TRY.
CALL METHOD CL_ABAP_MESSAGE_DIGEST=>CALCULATE_HASH_FOR_CHAR
EXPORTING
IF_ALGORITHM = CONV STRING( P_ALG )
IF_DATA = P_TXT
* IF_LENGTH = 0
IMPORTING
* EF_HASHSTRING =
* EF_HASHXSTRING =
EF_HASHB64STRING = LV_STR
* EF_HASHX =
.
CATCH CX_ABAP_MESSAGE_DIGEST INTO LV_ERR.
LV_STR = LV_ERR->GET_TEXT( ).
ENDTRY.
WRITE:/ LV_STR.
CALL FUNCTION 'CALCULATE_HASH_FOR_CHAR'
EXPORTING
ALG = CONV HASHALG( P_ALG )
DATA = P_TXT
* LENGTH = 0
IMPORTING
* HASH =
* HASHLEN =
* HASHX =
* HASHXLEN =
* HASHSTRING =
* HASHXSTRING =
HASHB64STRING = LV_STR
EXCEPTIONS
UNKNOWN_ALG = 1
PARAM_ERROR = 2
INTERNAL_ERROR = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 INTO LV_STR.
ENDIF.
WRITE:/ LV_STR.
SKIP.
ENDFORM.
'ABAP > Function|Class' 카테고리의 다른 글
[Function] BAPI_MESSAGE_GETDETAIL - 다른 언어로 메시지 출력 (0) | 2023.09.19 |
---|---|
[SearchHelp] 손익센터 그룹 탐색도움말 (0) | 2023.09.14 |
[Function] HOLIDAY_GET - 공휴일/공장 달력의 휴일 정보 (0) | 2023.07.24 |
[Function] MIGO_DIALOG - MIGO 실행(자재문서 조회) (0) | 2023.07.24 |
[Function] FI_ITEMS_MASS_CHANGE - 회계전표 품목 변경(FB09) (0) | 2023.07.10 |
댓글