调用CertificatePublicKeyEncrypt接口使用指定证书加密数据。
使用限制:请求参数中加密算法需要跟密钥类型对应。
加密算法和密钥类型对照表如下:
Algorithm  | 
    Key Spec  | 
   
|---|---|
RSAES_OAEP_SHA_1  | 
    RSA_2048  | 
   
RSAES_OAEP_SHA_256  | 
    RSA_2048  | 
   
SM2PKE  | 
    EC_SM2  | 
   
本文将提供一个示例,使用ID为12345678-1234-1234-1234-12345678****的证书,通过RSAES_OAEP_SHA_256加密算法对数据VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4=进行加密。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
| 名称 | 类型 | 是否必选 | 示例值 | 描述 | 
|---|---|---|---|---|
| Action | String | 是 | CertificatePublicKeyEncrypt | 要执行的操作。取值:CertificatePublicKeyEncrypt。  | 
        
| CertificateId | String | 是 | 12345678-1234-1234-1234-12345678**** | 证书ID。证书管家中证书的全局唯一标识符。  | 
        
| Algorithm | String | 是 | RSAES_OAEP_SHA_256 | 加密算法,取值: 
  | 
        
| Plaintext | String | 是 | VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4= | 待加密数据。 使用Base64编码。例如:待加密数据的十六进制内容为 Plaintext数据大小限制根据Algorithm的取值有所不同,具体如下: 
 如果需要对超出接口限制的数据进行加密,可以先调用GenerateDataKey接口生成数据加密密钥加密数据,再调用CertificatePublicKeyEncrypt接口加密数据密钥。  | 
        
关于公共请求参数的详情,请参见公共参数。
返回数据
| 名称 | 类型 | 示例值 | 描述 | 
|---|---|---|---|
| CiphertextBlob | String | ZOyIygCyaOW6Gj****MlNKiuyjfzw= | 加密后的密文。 使用Base64编码。  | 
| RequestId | String | 5979d897-d69f-4fc9-87dd-f3bb73c40b80 | 本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。  | 
| CertificateId | String | 12345678-1234-1234-1234-12345678**** | 证书ID。  | 
示例
请求示例
http(s)://[Endpoint]/?Action=CertificatePublicKeyEncrypt
&CertificateId=12345678-1234-1234-1234-12345678****
&Algorithm=RSAES_OAEP_SHA_256
&Plaintext=VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4=
&公共请求参数
                            正常返回示例
XML格式
HTTP/1.1 200 OK
Content-Type:application/xml
<CertificatePublicKeyEncryptResponse>
    <CiphertextBlob>ZOyIygCyaOW6Gj****MlNKiuyjfzw=</CiphertextBlob>
    <RequestId>5979d897-d69f-4fc9-87dd-f3bb73c40b80</RequestId>
    <CertificateId>12345678-1234-1234-1234-12345678****</CertificateId>
</CertificatePublicKeyEncryptResponse>
                                    JSON格式
HTTP/1.1 200 OK
Content-Type:application/json
{
  "CiphertextBlob" : "ZOyIygCyaOW6Gj****MlNKiuyjfzw=",
  "RequestId" : "5979d897-d69f-4fc9-87dd-f3bb73c40b80",
  "CertificateId" : "12345678-1234-1234-1234-12345678****"
}
                错误码
| HttpCode | 错误码 | 错误信息 | 描述 | 
|---|---|---|---|
| 400 | InvalidParameter | The specified parameter is not valid. | 参数非法。 | 
| 404 | Certificate.NotFound | The specified certificate is not found. | 指定的证书不存在。 | 
| 404 | InvalidAccessKeyId.NotFound | The Access Key ID provided does not exist in our records. | 提供的 Access Key ID不存在 | 
访问错误中心查看更多错误码。