ReEncrypt

更新时间: 2024-03-08 18:23:34

对密文进行转加密。即先将密文解密,然后将解密得到的数据或者数据密钥使用新的主密钥再次进行加密,返回加密结果。

注意事项

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

QPS限制

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

详细说明

ReEncrypt使用场景如下:

  • 主密钥(CMK)进行轮转后,使用轮转后最新的密钥版本对数据进行重新加密。自动轮转密钥详情,请参见自动轮转密钥
  • 主密钥不变,改变加密上下文的内容,进行重新加密。
  • 将主密钥加密的数据或者数据密钥在KMS内部使用其它的主密钥进行重新加密。

ReEncrypt权限设置如下:

  • 需要有操作源主密钥的kms:ReEncryptFrom权限。
  • 需要有操作目的主密钥的kms:ReEncryptTo权限。
  • 可以设置kms:ReEncrypt*用于表示上述两个操作的权限。

调试

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

请求参数

名称

类型

是否必选

示例值

描述

Action String ReEncrypt

系统规定参数。取值:ReEncrypt

CiphertextBlob String ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901q********

待转加密的密文。

该参数可以为对称加密或非对称加密返回的密文数据。

SourceKeyId String 5c438b18-05be-40ad-b6c2-3be6752c****

解密密文时使用的主密钥ID。

主密钥的全局唯一标识符。

说明 当CiphertextBlob是非对称加密返回的公钥加密数据时需要指定该参数。
SourceKeyVersionId String 2ab1a983-7072-4bbc-a582-584b5bd8****

用于解密密文的密钥版本标识符。

说明 当CiphertextBlob是非对称加密返回的公钥加密数据时需要指定该参数。
SourceEncryptionAlgorithm String RSAES_OAEP_SHA_256

CiphertextBlob是公钥加密结果时,指定公钥加密的算法。算法详情,请参见AsymmetricDecrypt

取值:

  • RSAES_OAEP_SHA_256
  • RSAES_OAEP_SHA_1
  • SM2PKE
说明 当CiphertextBlob是非对称加密返回的公钥加密数据时需要指定该参数。
SourceEncryptionContext Map {"Example":"Example"}

key/value的JSON字符串。如果在EncryptGenerateDataKeyGenerateDataKeyWithoutPlaintextGenerateAndExportDataKey API中指定了该参数,则需要提供同样的参数才能解密,详情请参见EncryptionContext说明

说明 当CiphertextBlob是对称加密返回的密文数据时需要指定该参数。
DestinationKeyId String 1234abcd-12ab-34cd-56ef-12345678****

对密文解密后再次加密时使用的对称主密钥ID。

DestinationEncryptionContext Map {"Example":"Example"}

key/value的JSON字符串,用于目标主密钥加密时的加密上下文。

返回数据

名称

类型

示例值

描述

KeyId String 2ab1a983-7072-4bbc-a582-584b5bd8****

解密密文使用的主密钥ID。

主密钥的全局唯一标识符。

KeyVersionId String 202b9877-5a25-46e3-a763-e20791b5****

主密钥下用于解密密文的密钥版本标识符。

CiphertextBlob String DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****

使用指定的主密钥进行再次加密得到的密文。

RequestId String 207596a2-36d3-4840-b1bd-f87044699bd7

请求ID。

示例

请求示例

http(s)://[Endpoint]/?Action=ReEncrypt
&CiphertextBlob=ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901q********
&SourceKeyId=5c438b18-05be-40ad-b6c2-3be6752c****
&SourceKeyVersionId=2ab1a983-7072-4bbc-a582-584b5bd8****
&SourceEncryptionAlgorithm=RSAES_OAEP_SHA_256
&DestinationKeyId=1234abcd-12ab-34cd-56ef-12345678****
&公共请求参数

正常返回示例

XML格式

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

<ReEncryptResponse>
    <KeyId>2ab1a983-7072-4bbc-a582-584b5bd8****</KeyId>
    <KeyVersionId>202b9877-5a25-46e3-a763-e20791b5****</KeyVersionId>
    <CiphertextBlob>DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****</CiphertextBlob>
    <RequestId>207596a2-36d3-4840-b1bd-f87044699bd7</RequestId>
</ReEncryptResponse>

JSON格式

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

{
  "KeyId" : "2ab1a983-7072-4bbc-a582-584b5bd8****",
  "KeyVersionId" : "202b9877-5a25-46e3-a763-e20791b5****",
  "CiphertextBlob" : "DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****",
  "RequestId" : "207596a2-36d3-4840-b1bd-f87044699bd7"
}

错误码

HttpCode

错误码

错误信息

描述

400 InvalidParameter The specified parameter is not valid. 参数非法。
404 Forbidden.KeyNotFound The specified Key is not found. 指定的密钥不存在。
500 InternalFailure Internal Failure. 内部错误。建议重试,如果多次重试报错请提交工单。

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

阿里云首页 密钥管理服务 相关技术圈