首页 > 其他分享 >ABAP 实现AES加密

ABAP 实现AES加密

时间:2023-09-04 19:33:25浏览次数:41  
标签:content AES 加密 aes lv ABAP key xstr xstring

1.Github下载工具类https://github.com/Sumu-Ning/AES,利用abapGit上传至SAP系统

2.AES加密需要四个参数 ①密钥②加密模式③字节填充模式④偏移量

3.将明文转XSTRING,密钥BASE64解码,调用zcl_aes_utility=>encrypt_xstring方法

  METHOD aes_encrypt.

    DATA:lv_content_xstr  TYPE xstring,
         lv_key_xstr      TYPE xstring,
         lv_response_xstr TYPE xstring.

    "#明文
    CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
      EXPORTING
        text   = iv_content
      IMPORTING
        buffer = lv_content_xstr
      EXCEPTIONS
        failed = 1.
    "#密钥
    CALL FUNCTION 'SCMS_BASE64_DECODE_STR'
      EXPORTING
        input  = gc_aes_key
      IMPORTING
        output = lv_key_xstr
      EXCEPTIONS
        failed = 1
        OTHERS = 2.
    IF sy-subrc <> 0.
* Implement suitable error handling here
    ENDIF.
    zcl_aes_utility=>encrypt_xstring(
      EXPORTING
        i_key                   = lv_key_xstr
        i_data                  = lv_content_xstr
        i_encryption_mode       = zcl_aes_utility=>mc_encryption_mode_ecb
        i_padding_standard      = zcl_byte_padding_utility=>mc_padding_standard_pkcs_7  "字节填充模式
      IMPORTING
        e_data                  = lv_response_xstr ).

    CALL FUNCTION 'ZBC_CONVERT_XSTRING_TO_BYTE'
      EXPORTING
        iv_xstring     = lv_response_xstr
      IMPORTING
        ev_byte_string = ev_response.

  ENDMETHOD.

 

 

  METHOD aes_encrypt.

    DATA:lv_content_xstr  TYPE xstring,
         lv_key_xstr      TYPE xstring,
         lv_response_xstr TYPE xstring.

    "#明文
    CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
      EXPORTING
        text   = iv_content
      IMPORTING
        buffer = lv_content_xstr
      EXCEPTIONS
        failed = 1.
    "#密钥
    CALL FUNCTION 'SCMS_BASE64_DECODE_STR'
      EXPORTING
        input  = gc_aes_key
      IMPORTING
        output = lv_key_xstr
      EXCEPTIONS
        failed = 1
        OTHERS = 2.
    IF sy-subrc <> 0.
* Implement suitable error handling here
    ENDIF.
    zcl_aes_utility=>encrypt_xstring(
      EXPORTING
        i_key                   = lv_key_xstr
        i_data                  = lv_content_xstr
        i_encryption_mode       = zcl_aes_utility=>mc_encryption_mode_ecb
        i_padding_standard      = zcl_byte_padding_utility=>mc_padding_standard_pkcs_7  "字节填充模式
      IMPORTING
        e_data                  = lv_response_xstr ).

    CALL FUNCTION 'ZBC_CONVERT_XSTRING_TO_BYTE'
      EXPORTING
        iv_xstring     = lv_response_xstr
      IMPORTING
        ev_byte_string = ev_response.

  ENDMETHOD.

标签:content,AES,加密,aes,lv,ABAP,key,xstr,xstring
From: https://www.cnblogs.com/xiajiqiang/p/17677915.html

相关文章

  • Navicat里面数据库进行加密操作
    1、新建查询在里面将password字段使用md5函数进行加密:updateresetpassword=MD5(password)表格结果如下:2、在管理系统的mapper里面的sql语句进行修改然后再进行用户添加,添加进去的密码的数据就自动加密啦!3、读取密码数据登录的话,还是需要还原成为原来的密码就行判断......
  • 圣天诺Sentinel加密狗复制:保障数据安全的重要工具
    在当今这个数字化时代,数据已经成为企业最重要的资产之一。然而,随着网络gj的不断升级和数据泄露事件的频发,保障数据安全已经成为所有企业必须面对的挑战。为了应对这一挑战,越来越多的企业开始采用圣天诺Sentinel加密狗,它是保障数据安全的重要工具。圣天诺Sentinel加密狗是一种基于......
  • Java:SpringBoot使用AES对JSON数据加密和解密
    目录1、加密解密原理2、项目示例2.1、项目结构2.2、常规业务代码2.3、加密的实现2.4、接口测试2.5、总结1、加密解密原理客户端和服务端都可以加密和解密,使用base64进行网络传输加密方字符串->AES加密->base64解密方base64->AES解密->字符串2、项目示例2.1、项目结构$tr......
  • Java:使用javax.crypto.Cipher的AES算法实现数据加密解密
    AES算法加密Stringalgorithm="AES/ECB/PKCS5Padding";//定义加密算法Stringkey="1234567890123456";//这是待加密的信息Stringmessage="HelloWorld.";//这是待加密的信息Ciphercipher=Cipher.getInstance(algorithm);cipher.init(Cipher.ENCRYPT......
  • JS虚拟机JS加密技术:优缺点及案例研究
    JS虚拟机是一种用JS语法实现的模拟虚拟机逻辑执行的代码,以执行JS代码的技术。它提供了一种将JS代码编译成二进制指令集的方法,并模拟执行这些指令。本文将介绍jsvmp技术的优缺点,并提供一些案例代码。一、jsvmp技术的优点跨平台兼容性:jsvmp技术可以在不同的操作系统和硬件平台上运行,......
  • win7 系统 AES CFB 抛出不支持异常
    本文记录在win7系统上调用AES加密时,采用CFB模式,可能抛出CryptographicException异常可以看到抛出的异常提示是System.Security.Cryptography.CryptographicException:Thecurrentplatformdoesnotsupportthespecifiedfeedbacksize.异常堆栈如下System.Securit......
  • 关于Azure-虚拟机-磁盘-数据磁盘-创建时-使用密钥加密-和更换密钥的方法
    就目前来说,无论是我们创建虚拟机时的系统卷/系统磁盘,还是单独创建一个数据磁盘时,都必须要求选择一个密钥进行加密了也就是说,以后Azure上的每一块磁盘,都是有加密的,在密钥选择的时候,有如下3种选择1、平台管理的密钥(PMK)2、客户管理的密钥(CMK)3、平台托管密钥和客户管理的密钥关于上......
  • 揭秘POSTGRESQL中的通信加密
    在这篇文章中,我们想向您简要介绍TLS(传输层安全性),这是一种广泛与PostgreSQL结合使用的技术,用于加密客户端/服务器连接。什么是TLS?TLS是“传输层安全”的缩写,它是一种确保通过TCP连接发送的任何数据免受攻击者保护的方法。要了解TLS的工作原理,您首先需要了解有关加密的......
  • 关于Azure-磁盘加密集-Disk Encryption Set-的创建与说明
    在Azure中如果要使用自己的key加密磁盘,那么就得先创建一个密钥保管库,并生成密钥但是创建磁盘时,还是无法直接使用密钥保管库中的Key,先得有一个中间的产品,叫磁盘加密集,一个磁盘加密集,只能指定一个密钥保管库中的一个key于是整个过程为 ,1、先有密钥保管库及密钥,2,创建磁盘加密集,......
  • pg_dump备份加密
    瀚高数据库目录文档用途详细信息文档用途通常目前备份过程中,备份出的数据都为明文,而在备份数据的传输或者使用过程中,都有可能出现备份数据丢失的情况。在这种情况下,需要对备份出的数据进行加密处理。详细信息1.介绍对于备份时输入的口令,使用SM3加密算法,生成类似SM3***格式的16......