# 对称解密
对已加密数据进行私钥解密
# 一、请求说明
- 请求地址:http://IP:PORT/openapi/ces/v1/symmetric/decrypt
- 服务接口名称(即公共参数method的值): symmetric/decrypt
- 请求方式:POST
# 二、请求参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| virtualIndex | Integer | 是 | 虚拟索引 |
| wordMode | SymmetricWorkMode | 否 | 对称分组加密工作模式 默认 CBC |
| iv | String | 否 | Hex编码的iv 默认为全0 |
| data | String | 是 | 待解密数据 |
| dataType | DataType | 是 | 待解密数据格式(base64 、hex) |
| decryptDataType | DataType | 是 | 解密后数据格式(原文、原文base64、原文hex) |
字段解释
SymmetricWorkMode 对称分组加密工作模式
| 类型字段 | 介绍 |
|---|---|
| CBC | Cipher Block Chaining模式(密文分组链接模式) |
| ECB | 电码本模式(Electronic Codebook Book (ECB) |
- DataType 数据类型介绍
| 字段 | 类型介绍 |
|---|---|
| BASE64 | 原文BASE64 |
| HEX | 原文Hex |
| ORIGINAL | 原文 |
# 三、响应参数
| data 结果信息 | 类型 | 描述 |
|---|---|---|
| decryptData | String | 解密结果 |
# 四、成功示例
JSON示例
{
"code": 0,
"message": "success",
"requestId":"xxx",
"data": {
"decryptData": "123"
}
}
# 五、失败示例
JSON示例
{
"code": 10100,
"requestId":"xxx",
"message": "未找到证书",
}
# 六、SDK请求示例
// 提供的URL
String url = "http://172.16.3.232:20501";
// 您的appKey
String appKey = "XXX";
// 您的appSecret
String appSecret = "XXX";
// 1.原客户端
PkiClient client = new PkiOkhttpClient(url, appKey, appSecret);
SymmetricDecryptRequest request = new SymmetricDecryptRequest();
Integer virtualIndex = 22009;
String data = "WsdFW9g3chpvnq7dsB5jwQ==";
// 解密依赖项的值
request.setVirtualIndex(virtualIndex);
// 解密依赖项的值
request.setData(data);
request.setDataType(DataType.BASE64);
// 加密类型 签名密钥对解密、加密密钥对解密
request.setDecryptDataType(DataType.BASE64);
try {
SymmetricDecryptResponse response = client.execute(request);
// 后续业务
if (response.isSuccess()) {
System.out.println("成功:" + response.getResult());
SymmetricDecryptResponse.Result result = response.getResult();
System.out.println("解密结果: " + result.getDecryptData());
} else {
System.out.println("失败:" + response.getBody());
}
} catch (ApiException e) {
e.printStackTrace();
}