将使用KMS密钥加密的密文解密为明文。
使用说明
当您调用AdvanceEncrypt、AdvanceGenerateDataKey、Encrypt或GenerateDataKey,并使用KMS软件密钥管理实例中的对称密钥进行加密时,支持通过本接口解密。
关于密钥规格以及加密模式的详细信息,请参见密钥管理类型和密钥规格。
注意事项
所有请求参数使用Protocol Buffers编码后(即Request Body),内容长度不能超过3 MB,超过3 MB后服务端会拒绝处理并返回HTTP 413状态码。建议单次加解密的数据不超过6 KB,超过6 KB时请使用信封加密方案。详细信息,请参见使用KMS密钥进行信封加密。
单次加解密的数据量越大,网络传输失败可能性越大,网络传输所需时间越长,KMS实例对数据进行加解密所需时间也越长。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
CiphertextBlob | bytes | 是 | 二进制数据 | 待解密的密文。 |
KeyId | string | 否 | key-hzz62f1cb66fa42qo**** | 密钥的全局唯一标识符。该参数也可以被指定为密钥别名。 仅当解密Encrypt或者GenerateDataKey产生的密文时需要指定本参数。 |
Algorithm | string | 否 | AES_GCM | 解密算法。 仅当解密Encrypt或者GenerateDataKey产生的密文时需要指定本参数。 重要 必须与加密时使用的算法(Algorithm)相同。 |
Iv | bytes | 否 | 二进制数据 | 初始向量。 仅当解密Encrypt或者GenerateDataKey产生的密文,且解密算法(Algorithm)为AES_GCM、AES_CBC时,需要指定本参数。
重要 必须与加密时使用的初始向量(Iv)相同。 |
Aad | bytes | 否 | 二进制数据 | 认证数据。长度不超过8192字节。 仅当解密算法(Algorithm)是AES_GCM且加密时指定了认证数据(Aad)时,需要指定本参数。 重要 必须与加密时使用的认证数据(Aad)相同。 |
PaddingMode | string | 否 | PKCS7_PADDING | 填充模式。 仅当加密算法为AES_CBC或AES_ECB时,需要指定本参数。 重要 必须与加密时使用的填充模式(PaddingMode)相同。 取值:
|
响应数据
名称 | 类型 | 示例值 | 描述 |
Plaintext | bytes | 二进制数据 | 解密后的明文。 |
KeyId | string | key-hzz62f1cb66fa42qo**** | 密钥的全局唯一标识符。如果请求中的KeyId参数使用的是密钥别名,在响应中会返回别名对应的密钥的全局唯一标识符。 |
KeyVersionId | string | key-hzz62f1cb66fa42qo****-17kedv**** | 解密密文的密钥版本标志符。 |
Algorithm | string | AES_GCM | 解密算法。 |
PaddingMode | string | PKCS7_PADDING | 填充模式。 仅当加密算法(Algorithm)为AES_CBC或AES_ECB时,本参数返回有效值,其他情况返回空值。 |
RequestId | string | c0037a6d-7784-4ef2-a692-288fdcbc7b9d | 本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。 |
错误码
HTTP状态码 | 错误码 | 错误消息 | 描述 |
404 | Forbidden.OnlySymmetricKeySupported | The key %s is not a symmetric key. The API only supports symmetric keys. | 仅支持使用对称密钥。 |
500 | InternalFailure | Internal Failure. | 可能原因为:
如果已排除上述原因,请您通过工单联系技术支持人员。 |
访问公共错误码查看更多错误码。