调用Encrypt接口将明文加密为密文。

使用说明

不同密钥规格对应的加密算法与填充模式如下表所示。

密钥规格 加密算法 填充模式 说明
  • Aliyun_AES_128
  • Aliyun_AES_192
  • Aliyun_AES_256
AES_GCM(默认值) 不涉及 采用GCM模式进行AES加密。
AES_CBC
  • PKCS7_PADDING(默认值)
  • NO_PADDING
采用CBC模式进行AES加密。支持设置填充模式。
AES_ECB 采用ECB模式进行AES加密。支持设置填充模式。
Aliyun_SM4 SM4_GCM(默认值) 不涉及 采用GCM模式进行SM4加密。
  • RSA_2048
  • RSA_3072
  • RSA_4096
RSAES_OAEP_SHA_256(默认值) 不涉及 RSA加密,按照RFC 3447/PKCS#1中定义的RSAES-OAEP模式,使用MGF1和SHA-256。
EC_SM2 SM2PKE(默认值) 不涉及 SM2椭圆曲线公钥加密算法。
  • EC_P256
  • EC_P256K
ECIES_DH_SHA_1_XOR_HMAC(默认值) 不涉及 遵循SEC 1: Elliptic Curve Cryptography, Version 2.0标准,具体如下:
  • 密钥协商算法:ECDH。
  • 密钥派生算法:KDF2 with SHA-1。
  • MAC算法:HMAC-SHA-1。
  • 对称加密算法:XOR。

请求消息定义

message EncryptRequest {
     string KeyId = 1;
     bytes Plaintext = 2;
     string Algorithm = 3;
     bytes Aad = 4;
     bytes Iv = 5;    
     string PaddingMode = 6;
}

请求参数

名称 类型 是否必选 示例值 描述
KeyId string 1234abcd-12ab-34cd-56ef-12345678**** 主密钥(CMK)的全局唯一标识符。该参数也可以被指定为CMK绑定的别名。
Plaintext bytes 二进制明文 待加密明文。
Algorithm string RSAES_OAEP_SHA_256 加密算法,取值:
  • AES_GCM
  • AES_CBC
  • AES_ECB
  • SM4_GCM
  • RSAES_OAEP_SHA_256(默认值)
  • SM2PKE
  • ECIES_DH_SHA_1_XOR_HMAC
Iv bytes 二进制向量 主密钥是对称密钥时可以指定的初始化向量。不指定则由系统随机生成。
Aad binary 二进制数据 认证数据。

当主密钥是对称密钥、加密算法(Algorithm)是AES_GCM或SM4_GCM时,可以指定该参数。如果指定了该参数,调用Decrypt解密时需要指定相同的参数。

PaddingMode string PKCS7_PADDING 填充模式,取值:
  • PKCS7_PADDING(默认值):即PKCS#7填充。数据明文或密文内容的长度可以不是相应块密码算法块大小(K字节)的整数倍。

    当输入数据明文或密文内容长度为L字节时,系统将填充K -(L mod K)字节的内容,填充的每个字节为均为K -(L mod K)。

  • NO_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 二进制向量 加密后的初始向量。
CiphertextBlob bytes 二进制密文 数据被指定CMK的主版本加密后的密文。
说明 当采用ECIES算法时,返回的密文格式遵循SEC 1: Elliptic Curve Cryptography, Version 2.0标准。
KeyId string 1234abcd-12ab-34cd-56ef-12345678**** CMK的全局唯一标识符。如果请求中的KeyId参数使用的是CMK的别名,在响应中会返回别名对应的CMK标识符。
Algorithm string RSAES_OAEP_SHA_256 加密算法。
PaddingMode string PKCS7_PADDING 填充模式。
RequestId string 475f1620-b9d3-4d35-b5c6-3fbdd941423d 请求ID。

错误码

关于错误码的更多信息,请参见公共错误码