• sap abap rsa 加密


    FORM FRM_RSA_ENCODE USING PV_INPUT TYPE STRING  PV_SPK  TYPE STRING CHANGING PV_SECRET TYPE STRING
       CV_FLAG TYPE CHAR01 CV_MESS TYPE STRING .
      DATA: LV_OUTPUT         TYPE XSTRING,
            LV_INPUT_X        TYPE XSTRING,
            LV_INPUT          TYPE STRING,
            LV_CRC            TYPE SSFPARMS-SSFCRC,
            LT_RECIPIENT_LIST TYPE STANDARD TABLE OF SSFINFO,
            LS_RECIPIENT_LIST LIKE LINE OF LT_RECIPIENT_LIST.

      DATA: LV_BASE64    TYPE STRING,
            LV_PUBKEY    TYPE XSTRING,
            LV_PUBBASE64 TYPE STRING,
            LV_STR       TYPE STRING.

      LV_INPUT =  PV_INPUT .

      LV_INPUT_X = CL_BCS_CONVERT=>STRING_TO_XSTRING( LV_INPUT ).

      " 加密
      LV_PUBBASE64 =  PV_SPK .

      CALL FUNCTION 'SCMS_BASE64_DECODE_STR'
        EXPORTING
          INPUT  = LV_PUBBASE64
    *     UNESCAPE       = 'X'
        IMPORTING
          OUTPUT = LV_PUBKEY
        EXCEPTIONS
          FAILED = 1
          OTHERS = 2.

      " 模数 参考加密概述
      LV_STR = LV_PUBKEY.
      DATA(LENGTH) = STRLEN( LV_STR ).
      IF LENGTH > 514." 2048位密钥
        DATA(POS) = LENGTH - 10 - 514.
        LV_STR = LV_STR+POS(514).
      ELSEIF LENGTH > 256." 1024位密钥
        POS = LENGTH - 10 - 256.
        LV_STR = LV_STR+POS(256).
      ENDIF.

      " 函数使用密钥格式
      LV_STR = 'R:m=' && LV_STR && ':e=010001:'.
      LV_PUBKEY = CL_BCS_CONVERT=>STRING_TO_XSTRING( LV_STR ).

      LS_RECIPIENT_LIST-ID = ''."
      APPEND LS_RECIPIENT_LIST TO LT_RECIPIENT_LIST.

      CALL FUNCTION 'SSFW_KRN_ENVELOPE'
        EXPORTING
          STR_FORMAT          = 'PKCS1-V1.5'
          STR_PAB             = ''
          STR_CHAINFMT        = 'KEYVALUE'
          OSTR_CHAIN_DATA     = LV_PUBKEY
          OSTR_INPUT_DATA     = LV_INPUT_X
        IMPORTING
          OSTR_ENVELOPED_DATA = LV_OUTPUT
          CRC                 = LV_CRC
        TABLES
          RECIPIENT_LIST      = LT_RECIPIENT_LIST
        EXCEPTIONS
          OTHERS              = 1.

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

      PV_SECRET = LV_BASE64.

    ENDFORM.

  • 相关阅读:
    KVM之QEMU Q35仿真程序-尚文网络xUP楠哥
    一图读懂账号安全的防护实践
    系统入门到实战学习某项技术、有问题找“百度“、学习优秀的技术博客、找开源代码等资料
    太空射击第14课: 玩家生命
    YOLOv7独家改进:Multi-Dconv Head Transposed Attention注意力,效果优于MHSA| CVPR2022
    【小爱学大数据】FlinkKafkaConsumer
    知识点终结
    安全狗又拿下一场重保胜战 第22届投洽会顺利谢幕
    C# 实现基于exe内嵌HTTPS监听服务、从HTTP升级到HTTPS 后端windows服务
    【华为OD机试真题 python】仿lisp运算【2022 Q4 | 200分】
  • 原文地址:https://blog.csdn.net/u014535256/article/details/126698872