全部产品
Search
文档中心

密钥管理服务:Decrypt

更新时间:Jan 24, 2024

调用Decrypt接口将密文解密为明文。

使用说明

当您调用EncryptGenerateDataKey接口生成密文后,可以通过Decrypt解密。

关于密钥规格以及加密模式的详细信息,请参见密钥管理类型和密钥规格

注意事项

所有请求参数使用Protocol Buffers编码后(即Request Body),内容长度不能超过3 MB,超过3 MB后服务端会拒绝处理并返回HTTP 413状态码。建议单次使用对称密钥加解密的数据不超过6 KB,单次使用非对称密钥加解密的数据不超过1 KB,超过后请使用信封加密方案。详细信息,请参见使用KMS密钥进行信封加密

说明

单次加解密的数据量越大,网络传输失败可能性越大,网络传输所需时间越长,KMS实例对数据进行加解密所需时间也越长。

请求参数

名称

类型

是否必选

示例值

描述

KeyId

string

key-hzz62f1cb66fa42qo****

密钥的全局唯一标识符。该参数也可以被指定为密钥别名。

Algorithm

string

AES_GCM

解密算法。

重要

必须与加密时使用的算法相同。

Iv

bytes

二进制数据

初始向量。

仅当解密算法(Algorithm参数)为AES_GCM、AES_CBC或时需要提供本参数。

  • 解密算法(Algorithm)为AES_CBC时:Iv长度为16字节。

  • 解密算法(Algorithm)为AES_GCM时:Iv长度为12字节。

重要

必须与加密时使用的初始向量相同。

CiphertextBlob

bytes

二进制数据

待解密的密文。

说明

当采用ECIES算法时,密文格式遵循SEC 1: Elliptic Curve Cryptography, Version 2.0标准。

Aad

bytes

二进制数据

认证数据。长度不超过8192字节。

仅当解密算法(Algorithm)是AES_GCM或SM4_GCM,且加密时指定了认证数据(Aad)时,需要提供本参数。

重要

必须与加密时使用的认证数据相同。

PaddingMode

string

PKCS7_PADDING

填充模式。

仅当加密算法为AES_CBC或AES_ECB时,需要提供本参数。

重要

必须与加密时使用的填充模式相同。

取值:

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

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

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

响应数据

名称

类型

示例值

描述

Plaintext

bytes

二进制数据

解密后的明文。

KeyId

string

key-hzz62f1cb66fa42qo****

密钥的全局唯一标识符。如果请求中的KeyId参数使用的是密钥别名,在响应中会返回别名对应的密钥的全局唯一标识符。

Algorithm

string

AES_GCM

解密算法。

PaddingMode

string

PKCS7_PADDING

填充模式。

RequestId

string

475f1620-b9d3-4d35-b5c6-3fbdd941423d

本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。

错误码

HTTP状态码

错误码

错误消息

描述

500

InternalFailure

Internal Failure.

可能原因为:

  • 密文数据不符合要求。

    例如,RSA解密(RSAES_OAEP_SHA_256)时,使用公钥对明文加密时使用的摘要算法是SHA-1,或者AES_ECB解密时,密文数据长度不是16字节(AES算法块大小)的倍数。

  • 请求参数指定的密钥不是加密时使用的密钥。

如果已排除上述原因,请您通过工单联系技术支持人员。

访问公共错误码查看更多错误码。