Encrypt
调用Encrypt接口将明文加密为密文。
使用说明
不同密钥规格对应的加密算法与填充模式如下表所示。
密钥规格 | 加密算法 | 填充模式 | 说明 |
| AES_GCM(默认值) | 不涉及 | 采用GCM模式进行AES加密。 |
AES_CBC |
| 采用CBC模式进行AES加密。支持设置填充模式。 说明 仅硬件密钥管理实例支持使用本加密算法。 | |
AES_ECB | 采用ECB模式进行AES加密。支持设置填充模式。 说明 仅硬件密钥管理实例支持使用本加密算法。 | ||
Aliyun_SM4 | SM4_GCM(默认值) | 不涉及 | 采用GCM模式进行SM4加密。 说明 仅硬件密钥管理实例支持使用本加密算法。 |
| RSAES_OAEP_SHA_256(默认值) | 不涉及 | RSA加密,按照RFC 3447/PKCS#1中定义的RSAES-OAEP模式,使用MGF1和SHA-256。 |
EC_SM2 | SM2PKE(默认值) | 不涉及 | SM2椭圆曲线公钥加密算法。 说明 仅硬件密钥管理实例支持使用本加密算法。 |
| ECIES_DH_SHA_1_XOR_HMAC(默认值) | 不涉及 | 遵循SEC 1: Elliptic Curve Cryptography, Version 2.0标准,具体如下:
|
请求消息定义
message EncryptRequest {
string KeyId = 1;
bytes Plaintext = 2;
string Algorithm = 3;
bytes Aad = 4;
bytes Iv = 5;
string PaddingMode = 6;
}
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
KeyId | string | 是 | key-hzz62f1cb66fa42qo**** | 密钥的全局唯一标识符。该参数也可以被指定为密钥别名。 |
Plaintext | bytes | 是 | 二进制数据 | 待加密的明文数据。 |
Algorithm | string | 否 | AES_GCM | 加密算法。具体的取值和默认值,请参见本文使用说明表格中的加密算法列。 |
Iv | bytes | 否 | 二进制数据 | 对数据加密时使用的初始向量。 仅当加密算法(Algorithm参数)为AES_GCM、AES_CBC或SM4_GCM时本参数有效。如果未指定该参数,KMS将随机生成。 |
Aad | binary | 否 | 二进制数据 | 对数据密钥加密时使用的GCM加密模式认证数据。 当密钥是对称密钥、加密算法(Algorithm)是AES_GCM或SM4_GCM时,您可以按需要使用本参数。 重要 如果指定了本参数,调用Decrypt解密时需要指定相同的参数。 |
PaddingMode | string | 否 | PKCS7_PADDING | 填充模式。 仅当加密算法为AES_CBC或AES_ECB时,需要提供本参数。更多信息,请参见本文使用说明表格中的填充模式列。 取值:
|
响应消息定义
message EncryptResponse {
string KeyId = 1;
bytes CiphertextBlob = 2;
bytes Iv = 3;
string RequestId = 4;
string Algorithm = 5;
string PaddingMode = 6;
}
响应数据
名称 | 类型 | 示例值 | 描述 |
Iv | bytes | 二进制数据 | 加密数据时使用的初始向量。 仅当加密算法(Algorithm参数)为AES_GCM、AES_CBC或SM4_GCM时,本参数返回有效值,其他场景返回空值。 |
CiphertextBlob | bytes | 二进制数据 | 数据被指定密钥加密后的密文。 说明 当采用ECIES算法时,返回的密文格式遵循SEC 1: Elliptic Curve Cryptography, Version 2.0标准。 |
KeyId | string | key-hzz62f1cb66fa42qo**** | 密钥的全局唯一标识符。如果请求中的KeyId参数使用的是密钥别名,在响应中会返回别名对应的密钥的全局唯一标识符。 |
Algorithm | string | AES_GCM | 加密算法。如果请求参数中指定了加密算法(Algorithm),本参数与请求参数中的值相同。如果请求参数中未指定加密算法,KMS会使用加密算法默认值,即本参数返回加密算法默认值。 关于KMS的加密算法默认值,请参见本文使用说明表格中的加密算法列。 |
PaddingMode | string | PKCS7_PADDING | 填充模式。仅当加密算法(Algorithm参数)为AES_CBC或AES_ECB时,本参数返回有效值,其他场景返回空值。 |
RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | 本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。 |
错误码
关于错误码的更多信息,请参见公共错误码。