Encrypt

调用Encrypt接口使用对称密钥将明文加密为密文。

注意事项

  • 非KMS实例中的密钥:进行密码运算时,仅支持通过阿里云SDK调用OpenAPI。
  • KMS实例中的密钥:进行密码运算时,支持如下两种方式。

QPS限制

本接口的单用户QPS限制为750次/秒。超过限制,API调用将会被限流,这可能影响您的业务,请合理调用。

详细说明

  • KMS使用指定密钥的主版本对传入数据进行加密。
  • 最多可加密6KB的数据,例如RSA密钥、数据库密码或其它敏感信息。
  • 如果将加密数据从一个地域迁移到另一个地域,可以调用Encrypt接口在新地域中加密从另一个地域中转移过来的明文DataKey。新地域中会生成一个加密后的DataKey。您可以在新地域调用Decrypt将其解密。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称

类型

是否必选

示例值

描述

Action String Encrypt

要执行的操作。取值:Encrypt

KeyId String key-hzz630494463ejqjx****

密钥的ID,也可以指定为密钥别名或密钥资源名称(ARN)。关于别名的详细介绍,请参见管理密钥别名

说明 访问其他阿里云账号下的密钥时,必须输入密钥ARN。密钥ARN的格式为acs:kms:${region}:${account}:key/${keyid}
Plaintext String SGVsbG8gd29y****

待加密明文(必须经过Base64编码)。

EncryptionContext Map {"Example":"Example"}

key/value的JSON字符串。如果指定了该参数,则在调用Decrypt时需要提供同样的参数,详情请参见EncryptionContext说明

DryRun String false

是否开启DryRun模式。

  • true:开启
  • false(默认值):关闭

DryRun模式用于测试API调用,验证您是否具有相应资源的权限,以及请求参数是否配置正确。DryRun模式开启后,KMS会始终返回失败并提示失败原因。失败原因包含如下:

  • DryRunOperationError:不配置DryRun参数时,请求会成功。
  • ValidationError:请求中指定的参数有误。
  • AccessDeniedError:您无权在KMS资源上执行该操作。

返回数据

名称

类型

示例值

描述

KeyVersionId String 86a9efd9-3d16-4894-bd4f-1fc43f3f****

用于加密明文的密钥版本标志符。是指定密钥的主版本。

KeyId String key-hzz630494463ejqjx****

密钥ID。如果请求中的KeyId参数使用的是密钥别名、密钥ARN,在响应中会返回密钥ID。

CiphertextBlob String DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****

数据被指定密钥的主版本加密后的密文。

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

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

示例

请求示例

http(s)://[Endpoint]/?Action=Encrypt
&KeyId=key-hzz630494463ejqjx****
&Plaintext=SGVsbG8gd29y****
&DryRun=false
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<EncryptResponse>
    <KeyVersionId>86a9efd9-3d16-4894-bd4f-1fc43f3f****</KeyVersionId>
    <KeyId>key-hzz630494463ejqjx****</KeyId>
    <CiphertextBlob>DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****</CiphertextBlob>
    <RequestId>475f1620-b9d3-4d35-b5c6-3fbdd941423d</RequestId>
</EncryptResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "KeyVersionId" : "86a9efd9-3d16-4894-bd4f-1fc43f3f****",
  "KeyId" : "key-hzz630494463ejqjx****",
  "CiphertextBlob" : "DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****",
  "RequestId" : "475f1620-b9d3-4d35-b5c6-3fbdd941423d"
}

错误码

HttpCode

错误码

错误信息

描述

400 InvalidParameter The specified parameter is invalid. 参数错误
404 Forbidden.KeyNotFound The specified Key is not found. 指定的密钥不存在。
404 Forbidden.AliasNotFound The specified Alias is not found. 指定的别名找不到

访问错误中心查看更多错误码。