
# AesUtils类说明
#### 路径
com.roma.apic.livedata.common.v1.AesUtils
#### 说明
提供AES加解密方法。
#### 使用示例
加密示例
```
importClass(com.roma.apic.livedata.common.v1.AesUtils);
function execute(data) {
  var plainText = "plainText";
  //加解密用的密钥硬编码到代码中有较大的安全风险，建议在配置文件中存放，本示例以在自定义后端的配置管理中配置的secretKey为例进行说明
  var secretKey = "#{secretKey}";
  var initialVector = "initialVector";
  var encryptText = AesUtils.encrypt(plainText, secretKey, initialVector, AesUtils.KEYLENGTH.KL_128, AesUtils.MODE.GCM, AesUtils.PAD.NOPADDING);
  return encryptText
}
```
解密示例
```
importClass(com.roma.apic.livedata.common.v1.AesUtils);
function execute(data) {
  var encryptText = "encryptText";
  //加解密用的密钥硬编码到代码中有较大的安全风险，建议在配置文件中存放，本示例以在自定义后端的配置管理中配置的secretKey为例进行说明
  var secretKey = "#{secretKey}";
  var initialVector = "initialVector";
  var decryptText = AesUtils.decrypt(encryptText, secretKey, initialVector, AesUtils.KEYLENGTH.KL_128, AesUtils.MODE.GCM, AesUtils.PAD.NOPADDING);
  return decryptText
}
```
#### 方法列表
| 返回类型                    | 方法和说明                                                                                                                                                                                                                           |
|:---|:---|
| static java.lang.String | decrypt(java.lang.String encryptText, java.lang.String secretKey) 使用密钥对密文进行AES解密。                                                                                                         |
| static java.lang.String | encrypt(java.lang.String plainText, java.lang.String secretKey) 使用密钥对明文进行AES加密。                                                                                                           |
| static java.lang.String | decrypt(java.lang.String encryptText, java.lang.String secretKey, java.lang.String initialVector, AesUtils.KEYLENGTH length, AesUtils.MODE mode, AesUtils.PAD pad) 使用指定模式和长度的密钥对密文进行AES解密。 |
| static java.lang.String | encrypt(java.lang.String plainText, java.lang.String secretKey, java.lang.String initialVector, AesUtils.KEYLENGTH length, AesUtils.MODE mode, AesUtils.PAD pad) 使用指定模式和长度的密钥对明文进行AES加密。   |
   
#### 方法详情
- **public static java.lang.String decrypt(java.lang.String encryptText, java.lang.String secretKey)**
  使用密钥对密文进行AES解密
  **输入参数**
  - encryptText：待解密的密文，长度不超过8192
  
  - secretKey：密钥
  
  
  **返回信息**
  返回解密后的数据
  
- **public static java.lang.String encrypt(java.lang.String plainText, java.lang.String secretKey)**
  使用密钥对明文进行AES加密
  **输入参数**
  - plainText：待加密的明文，长度不超过4096
  
  - secretKey：密钥
  
  
  **返回信息**
  返回加密后的数据
  
- **public static java.lang.String decrypt(java.lang.String encryptText, java.lang.String secretKey, java.lang.String initialVector, AesUtils.KEYLENGTH length, AesUtils.MODE mode, AesUtils.PAD pad)**
  使用指定模式和长度的密钥对密文进行AES解密
  **输入参数**
  - encryptText：待解密的密文，长度不超过8192
  
  - secretKey：密钥
  
  - initialVector：初始向量
  
  - length：密钥的长度，取值范围：AesUtils.KEYLENGTH.KL_0、AesUtils.KEYLENGTH.KL_128、AesUtils.KEYLENGTH.KL_192、AesUtils.KEYLENGTH.KL_256
  
  - mode：工作模式，取值范围：AesUtils.MODE.GCM、AesUtils.MODE.CTR
  
  - pad：填充模式，取值范围：AesUtils.PAD.PKCS5PADDING，AesUtils.PAD.NOPADDING
  
  
  **返回信息**
  返回解密后的数据
  
- **public static java.lang.String encrypt(java.lang.String plainText, java.lang.String secretKey, java.lang.String initialVector, AesUtils.KEYLENGTH length, AesUtils.MODE mode, AesUtils.PAD pad)**
  使用指定模式和长度的密钥对明文进行AES加密
  **输入参数**
  - plainText：待加密的明文，长度不超过4096
  
  - secretKey：密钥
  
  - initialVector：初始向量
  
  - length：密钥的长度，取值范围：AesUtils.KEYLENGTH.KL_0、AesUtils.KEYLENGTH.KL_128、AesUtils.KEYLENGTH.KL_192、AesUtils.KEYLENGTH.KL_256
  
  - mode：工作模式，取值范围：AesUtils.MODE.GCM、AesUtils.MODE.CTR
  
  - pad：填充模式，取值范围：AesUtils.PAD.PKCS5PADDING，AesUtils.PAD.NOPADDING
  
  
  **返回信息**
  返回加密后的数据
  
 
