文档

Encrypt

更新时间:

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

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时,需要提供本参数。更多信息,请参见本文使用说明表格中的填充模式列。

取值:

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

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

  • NO_PADDING:不对数据明文填充。数据明文内容的长度必须为相应块密码算法块大小的整数倍。

响应消息定义

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,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。

错误码

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

  • 本页导读 (1)
文档反馈