# 非对称加密

对待加密数据进行公钥加密

# 一、请求说明

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

# 二、请求参数

名称 类型 是否必须 描述
encryptType CertSearchEnum 加密方式
encryptItemValue String 加密方式的值
data String 待加密数据
dataType DataType 待加密数据类型 (原文、原文base64 、原文hex)
encryptDataType 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 结果信息 类型 描述
encryptData String 加密结果
verification Integer 加密结果状态码
message String 加密结果提示信息
  • verification 返回码介绍
字段 状态码 状态介绍
SUCCESS 0 验证成功
CERT_NOT_EXIST 8 证书不存在

# 四、成功示例

JSON示例

{
  "code": 0,
  "message": "success",
  "requestId":"xxx",
  "data": {
    "encrypt": "BMY18jZgCLgQ1Jp9rbmQbEo+Pj6vsd7L6+zPv45qyeWkWVws9vxbLHtOcXDuMeRFFER33JP87u4x3mD8chLyKE6xMCzqDCwk+up+RhpO0ppbuXLLKEQNHexGWc2kDOzGdo92RA=="
  }
}

# 五、失败示例

JSON示例

{
    "code": 10024,
    "requestId":"xxx",
    "message": "App签名错误",
}

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

        AsymmetricEncryptRequest request = new AsymmetricEncryptRequest();

        String data = "MTIz";
        
        //通过何种方式进行加密
        request.setEncryptType(CertSearchEnum.CERT_ID);

        // 签名项目的值
        request.setEncryptItemValue("628cb99a51cfb422619db668");

        // 待加密数据
        request.setData(data);

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

        // 加密数据后数据格式
        request.setEncryptDataType(DataType.BASE64);

        // 加密类型
        request.setKeyType(KeypairTypeEnum.ENCRYPT);

        try {
            AsymmetricEncryptResponse response = client.execute(request);
            // 后续业务
            if (response.isSuccess()) {
                AsymmetricEncryptResponse.Result result = response.getResult();
                System.out.println("成功:" + result);
                System.out.println("加密结果 "+ result.getEncryptData());
                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