1. 接口描述
本接口 (GenerateDataKey )生成一个密钥,您可以用这个密钥进行本地数据的加密。
kms 请求域名接口和说明可参考 地域和域名说明。
任何时候,包括内测期间,如果使用外网域名产生公网下行流量,都会收取流量费用。 所以强烈建议服务在腾讯云上的用户使用内网域名,内网不会产生流量费用。
- 输入参数有些是可选的,不填取默认值。
- 输出参数在成功情况下所有出参都会返回给用户;失败情况下,至少会有 code,message,requestId 返回。
2. 输入参数
以下请求参数列表仅列出了接口请求参数,其它参数见 公共请求参数 页面。
参数名称 | 是否必选 | 类型 | 描述 |
---|---|---|---|
keyId | 是 | String | 调用 CreateKey 生成的 CMK 全局唯一标识符。 |
keySpec | 否 | String | 指定生成 Datakey 的加密算法以及 Datakey 大小,AES_128 或者 AES_256。 |
numberOfBytes | 否 | Int | 生成的 DataKey 的长度,同时指定 NumberOfBytes 和 KeySpec 时,以 NumberOfBytes 为准。 |
encryptionContext | 否 | json字符串 | key/value 对的 json 字符串,如果指定了该参数,则在调用 Decrypt API 时需要提供同样的参数。 |
3. 输出参数
参数名称 | 类型 | 描述 |
---|---|---|
code | Int | 0:表示成功,others:错误,详细错误见下表。 |
message | String | 错误提示信息。 |
requestId | String | 服务器生成的请求 ID。出现服务器内部错误时,用户可提交此 ID 给后台定位问题。 |
keyId | String | CMK 的全局唯一标识。 |
plaintext | String | 生成的 DataKey 的明文,该明文使用 base64 编码,用户需要使用 base64 解码得到明文。 KMS SDK 生成数据密钥接口已经封装了 base64 解码操作,用户若使用 SDK 则不需要调用 base64 解码操作。 |
ciphertextBlob | String | DataKey 加密后的密文。 |
4. 示例
输入
https://kms-bj.api.tencentyun.com/v2/index.php?Action=GenerateDataKey &keyId=kms-345sdfk &keySpec=AES_256 &<公共请求参数>
输出
{
"code": 0,
"message": "",
"requestId": "14534664555",
"keyId": "kms-345sdfk",
"plaintext": "string",
"ciphertextBlob": "string"
}