调用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

加密算法,取值:

  • RSAES_OAEP_SHA_1
  • RSAES_OAEP_SHA_256
  • SM2PKE
    说明 SM2PKE加密算法仅在中国内地使用托管密码机的地域支持。更多信息,请参见托管密码机概述
Plaintext String VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4=

待加密数据。

使用Base64编码。例如:待加密数据的十六进制内容为[0x31, 0x32, 0x33, 0x34],则对应的Base64编码为MTIzNA==

Plaintext数据大小限制根据Algorithm的取值有所不同,具体如下:

  • RSAES_OAEP_SHA_1:214字节。
  • RSAES_OAEP_SHA_256:190字节。
  • SM2PKE:6047字节。

如果需要对超出接口限制的数据进行加密,可以先调用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不存在

访问错误中心查看更多错误码。