生成数据密钥

最近更新时间:2019-07-24 15:23:21

1. 接口描述

接口请求域名: kms.tencentcloudapi.com 。

本接口生成一个数据密钥,您可以用这个密钥进行本地数据的加密。

默认接口请求频率限制:100次/秒。

2. 输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数

参数名称 必选 类型 描述
Action String 公共参数,本接口取值:GenerateDataKey
Version String 公共参数,本接口取值:2019-01-18
Region String 公共参数,详见产品支持的 地域列表
KeyId String CMK全局唯一标识符
KeySpec String 指定生成Datakey的加密算法以及Datakey大小,AES_128或者AES_256。
NumberOfBytes Integer 生成的DataKey的长度,同时指定NumberOfBytes和KeySpec时,以NumberOfBytes为准。最小值为1, 最大值为1024
EncryptionContext String key/value对的json字符串,如果使用该字段,则返回的DataKey在解密时需要填入相同的字符串

3. 输出参数

参数名称 类型 描述
KeyId String CMK的全局唯一标识
Plaintext String 生成的DataKey的明文,该明文使用base64编码,用户需要使用base64解码得到明文
CiphertextBlob String DataKey加密后的密文,用户需要自行保存密文
RequestId String 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

4. 示例

示例1 生成数据密钥示例

使用指定的CMK生成Datakey。

输入示例

https://kms.tencentcloudapi.com/?Action=GenerateDataKey
&KeyId=23e80852-1e38-11e9-b129-5cb9019b4b01
&KeySpec=AES_256
&<公共请求参数>

输出示例

{
  "Response": {
    "RequestId": "fe11aa29-0cc2-4204-bfea-6ebb30cc00d7",
    "KeyId": "9999aed0-4956-11e9-bc70-5254005e86b4",
    "Plaintext": "uW9wqntw+FAgnfsIrxOpOA==",
    "CiphertextBlob": "g2F8eQk44QrTbfj09TL17AZyFPgs8BTtZe2j27Wuw1YzTBCxnd0T/gwFQSasmtzxZi6mmvD7DCjCE+LxJmdhXQ==-k-fKVP3WIlGpg8m9LMW4jEkQ==-k-h/nUfRbaTUY7/KWXwuSK1Py+ZFRTK5WQiUz6yQE5XBFUN3UwPOUbl8P3A3caow2rlqTjUw=="
  }
}

5. 开发者资源

API Explorer

该工具提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力,能显著降低使用云 API 的难度,推荐使用。

SDK

云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。

命令行工具

6. 错误码

以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码

错误码 描述
InternalError 内部错误。
InvalidParameter 参数错误。
InvalidParameterValue.InvalidKeyId KeyId不合法。
ResourceUnavailable.CmkDisabled CMK已被禁用。
ResourceUnavailable.CmkNotFound CMK不存在。
UnauthorizedOperation 未授权操作。