# 非对称解密

对已加密数据进行私钥解密

# 一、请求说明

  • 请求地址:http://IP:PORT/openapi/ces/v1/asymmetric/decrypt
  • 服务接口名称(即公共参数method的值): asymmetric/decrypt
  • 请求方式:POST

# 二、请求参数

名称 类型 是否必须 描述
decryptType CertSearchEnum 解密方式
decryptItemValue String 解密方式的值
ciphertext String 待解密数据
dataType DataType 待解密数据类型 (base64、hex)
decryptDataType DataType 解密后数据格式 (原文、原文base64 、原文hex)
keyType KeypairTypeEnum 解密类型
  • 字段解释

  • CertSearchEnum 解密方式

类型字段 介绍
CERT 证书
CERT_ID 证书ID
KEY_INDEX 密钥索引(选用密钥索引方式仅可使用拥有者不为证书的密钥索引)
SN_HEX 证书序列号(十六进制格式)
SN_DEC 证书序列号(十进制格式)
TN_HASH 证书指纹
CERT_CN 证书CN项
CERT_DN 证书主题项
  • DataType 数据类型介绍
字段 类型介绍
BASE64 原文BASE64
HEX 原文Hex
ORIGINAL 原文
  • KeypairTypeEnum 解密类型
类型字段 介绍
SIGN 签名密钥对解密
ENCRYPT 加密密钥对解密

# 三、响应参数

data 结果信息 类型 描述
decryptData String 解密结果
verification Integer 解密结果状态码
message String 解密结果提示信息
  • verification 返回码介绍
字段 状态码 状态介绍
SUCCESS 0 验证成功
CERT_NOT_EXIST 8 证书不存在

# 四、成功示例

JSON示例

{
    "code":0,
    "message":"success",
    "requestId":"xxx",
    "data":{
        "verification":0,
        "message":"success",
        "decryptData":"123"
    }
}

# 五、失败示例

JSON示例

{
    "code": 10012,
    "message": "App不存在",
    "requestId":"xxx",
}

# 六、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);

        AsymmetricDecryptRequest request = new AsymmetricDecryptRequest();

       String data = "MGwCIQDpONXxj9Dt/fp5wTEMRZF32jmHivvQGX2FN408/97z0gIgJwaJVwMnEBRaP0KghS2Gjf/k1tQhL8oj0pgKHHvEHBUEIBfYYQ2H6Sk4rauwjesOryWt4GylyovZ5k7rW17QLNmSBANN0aQ=";


        //通过何种方式进行解密
        request.setDecryptType(CertSearchEnum.CERT_ID);

        // 解密依赖项的值
       request.setDecryptItemValue("628cb99a51cfb422619db668");

        // 解密依赖项的值
        request.setCiphertext(data);

        // 解密数据类型
        request.setDataType(DataType.BASE64);

        // 解密后数据类型
        request.setDecryptDataType(DataType.BASE64);

        // 用加密密钥 加密
        request.setKeyType(KeypairTypeEnum.ENCRYPT);

        try {
            AsymmetricDecryptResponse response = client.execute(request);
            // 后续业务
            if (response.isSuccess()) {
               AsymmetricDecryptResponse.Result result = response.getResult();
                System.out.println("成功:" + result);
                System.out.println("解密结果: "+ result.getDecryptData());
                System.out.println("验证信息状态码: "+ result.getVerification());
                System.out.println("验证提示信息: "+ result.getMessage());
            } else {
                System.out.println("失败:" + response.getBody());
            }
        } catch (ApiException e) {
            e.printStackTrace();
        }
最后更新于: 6/6/2023, 9:56:55 AM