SAP ABAP BASE64 MD5 加解密

 SAP ABAP BASE64 MD5 加解密的完整代码,开箱即用。

abap base64 加解密 SAP EPIC 银企直连
616261702062617365363420E58AA0E8A7A3E5AF8620534150204550494320E993B6E4BC81E79BB4E8BF9E
YWJhcCBiYXNlNjQg5Yqg6Kej5a+GIFNBUCBFUElDIOmTtuS8geebtOi/ng==

YWJhcCBiYXNlNjQg5Yqg6Kej5a+GIFNBUCBFUElDIOmTtuS8geebtOi/ng==
616261702062617365363420E58AA0E8A7A3E5AF8620534150204550494320E993B6E4BC81E79BB4E8BF9E
abap base64 加解密 SAP EPIC 银企直连

8125b5dfea86aa8947d434e18eef4b3a

*&---------------------------------------------------------------------*
*& Report ZDZ008  MD5 BASE64 加解密
*&---------------------------------------------------------------------*
*&SCP_CODEPAGE_BY_EXTERNAL_NAME
*&SCP_CODEPAGE_INFO
*&UTF8 4110 GB2312 8450 GBK 8400
*&---------------------------------------------------------------------*
REPORT ZDZ008 NO STANDARD PAGE HEADING.

DATA: LV_BUFFER	TYPE XSTRING,
      LV_BASE64 TYPE STRING.

DATA: LV_DECODEX TYPE XSTRING,
      LV_DECODE  TYPE STRING.

DATA: LV_HASH TYPE HASH160.

SELECTION-SCREEN BEGIN OF BLOCK B101 WITH FRAME TITLE TEXT-101.

PARAMETERS: P_TEXT TYPE STRING LOWER CASE OBLIGATORY,
            P_MIME TYPE CHAR20 LOWER CASE,
            P_ENCO TYPE ABAP_ENCODING LOWER CASE DEFAULT '4110' OBLIGATORY,
            P_ALG  TYPE HASHALG DEFAULT 'MD5' OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B101.

INITIALIZATION.

START-OF-SELECTION.

  CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
    EXPORTING
      TEXT     = P_TEXT
      MIMETYPE = P_MIME
      ENCODING = P_ENCO
    IMPORTING
      BUFFER   = LV_BUFFER
    EXCEPTIONS
      FAILED   = 1
      OTHERS   = 2.

  CALL FUNCTION 'SCMS_BASE64_ENCODE_STR'
    EXPORTING
      INPUT  = LV_BUFFER
    IMPORTING
      OUTPUT = LV_BASE64.

  WRITE:/ P_TEXT,
        / LV_BUFFER,
        / LV_BASE64.

  ULINE.

  CALL FUNCTION 'SCMS_BASE64_DECODE_STR'
    EXPORTING
      INPUT    = LV_BASE64
      UNESCAPE = 'X'
    IMPORTING
      OUTPUT   = LV_DECODEX
    EXCEPTIONS
      FAILED   = 1
      OTHERS   = 2.

  CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING'
    EXPORTING
      IM_XSTRING  = LV_DECODEX
      IM_ENCODING = P_ENCO
    IMPORTING
      EX_STRING   = LV_DECODE.

  WRITE:/ LV_BASE64,
        / LV_DECODEX,
        / LV_DECODE.

  ULINE.



  PERFORM FRM_BASE64 USING P_TEXT P_ENCO CHANGING LV_BASE64.

  WRITE:/ P_TEXT,
        / LV_BUFFER,
        / LV_BASE64.

  ULINE.


  PERFORM FRM_DEBASE64 USING LV_BASE64 P_ENCO CHANGING LV_DECODE.

  WRITE:/ LV_BASE64,
        / LV_DECODEX,
        / LV_DECODE.

  ULINE.


  PERFORM FRM_MD5 USING P_ALG P_TEXT 0 'X' CHANGING LV_HASH.

  WRITE:/ LV_HASH.

  ULINE.


FORM FRM_BASE64 USING    LV_STR
                         LV_ENCO
                CHANGING LV_BASE64.

  DATA: LV_BUFFER	TYPE XSTRING.

  DATA: LV_MIME TYPE CHAR20.

  CLEAR: LV_BASE64.
  CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
    EXPORTING
      TEXT     = LV_STR
      MIMETYPE = LV_MIME
      ENCODING = LV_ENCO
    IMPORTING
      BUFFER   = LV_BUFFER
    EXCEPTIONS
      FAILED   = 1
      OTHERS   = 2.

  CALL FUNCTION 'SCMS_BASE64_ENCODE_STR'
    EXPORTING
      INPUT  = LV_BUFFER
    IMPORTING
      OUTPUT = LV_BASE64.

ENDFORM.

FORM FRM_DEBASE64 USING    LV_BASE64
                           LV_ENCO
                  CHANGING LV_STR.

  DATA: LV_BUFFER	TYPE XSTRING.

  CLEAR: LV_STR.
  CALL FUNCTION 'SCMS_BASE64_DECODE_STR'
    EXPORTING
      INPUT    = LV_BASE64
      UNESCAPE = 'X'
    IMPORTING
      OUTPUT   = LV_BUFFER
    EXCEPTIONS
      FAILED   = 1
      OTHERS   = 2.

  CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING'
    EXPORTING
      IM_XSTRING  = LV_BUFFER
      IM_ENCODING = LV_ENCO
    IMPORTING
      EX_STRING   = LV_STR.

ENDFORM.

FORM FRM_MD5 USING    LV_ALG
                      LV_DATA
                      LV_LEN
                      LV_LOWER
             CHANGING LV_MD5.

  DATA: LV_HASH          TYPE HASH160,
        LV_HASHLEN       TYPE I,
        LV_HASHX         TYPE HASH160X,
        LV_HASHXLEN      TYPE I,
        LV_HASHSTRING    TYPE STRING,
        LV_HASHXSTRING   TYPE XSTRING,
        LV_HASHB64STRING TYPE STRING.

  CLEAR: LV_MD5.
  CALL FUNCTION 'CALCULATE_HASH_FOR_CHAR'
    EXPORTING
      ALG            = LV_ALG
      DATA           = LV_DATA
      LENGTH         = LV_LEN
    IMPORTING
      HASH           = LV_HASH
      HASHLEN        = LV_HASHLEN
      HASHX          = LV_HASHX
      HASHXLEN       = LV_HASHXLEN
      HASHSTRING     = LV_HASHSTRING
      HASHXSTRING    = LV_HASHXSTRING
      HASHB64STRING  = LV_HASHB64STRING
    EXCEPTIONS
      UNKNOWN_ALG    = 1
      PARAM_ERROR    = 2
      INTERNAL_ERROR = 3
      OTHERS         = 4.

  LV_MD5 = LV_HASH.

  IF LV_LOWER = 'X'.
    TRANSLATE LV_MD5 TO LOWER CASE.
  ENDIF.

ENDFORM.


BASE64加密后的密文可以直接用网上的在线程序直接解密,那么JAVA当然也可以解密的。

Base64加密、解密-BeJSON.comhttps://www.bejson.com/enc/base64/

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ABAP是一种SAP开发语言,其在企业级应用的开发和运行中发挥着不可替代的作用。在实际的开发和业务流程中,数据的加密与保护是非常重要的,因此在ABAP的开发中,MD5Base64算法的应用也变得越来越广泛。 MD5是一种常见的加密算法,可以将任意长度的消息摘要成固定长度的128位数据,具有不可逆转的特点,因此对于数据的保护有着非常好的效果。在ABAP中,可以通过使用Function module “SSFC_STRING_HASH”实现MD5加密,具体操作如下: 1.需要使用IMPORT参数algorithm(值为’MD5’) 2.调用函数时,需要将需要加密的消息传递给EXPORT变量“hashval”,这个变量的类型是RAW,或者是CHAR,长度为16。 示例代码如下: DATA: lv_text TYPE string VALUE 'ABAP MD5加密', lv_algo TYPE ssfc_apps_algo_md5, lv_hash TYPE ssfc_raw16. lv_algo = 'MD5'. CALL FUNCTION 'SSFC_STRING_HASH' EXPORTING algorithm = lv_algo string = lv_text IMPORTING hashval = lv_hash. 在得到MD5值之后,可以将其与Base64加密算法结合使用,对数据进行进一步保护和传输。Base64编码可以将二进制数据转化成一种可读性很高的ASCII字符组合,具有不可逆的特征,因此在传输数据中的广泛应用非常必要。 在ABAP中,可以通过使用Function module “SCMS_BASE64_ENCODE_STR”的方法实现Base64编码,将加密后的数据转换成可读性更高的字符创类型数据传输出去,具体操作如下: 示例代码如下: DATA: lv_base64 TYPE string. CALL FUNCTION 'SCMS_BASE64_ENCODE_STR' EXPORTING text = lv_hash IMPORTING b64 = lv_base64. 可以看到,在ABAP的开发中,MD5Base64加密算法的应用,可以更好地保护数据,保障企业的信息安全,在实际开发中具有非常重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值