1. 接口描述
本接口 (GenerateDataKey )生成一个密钥,您可以用这个密钥进行本地数据的加密。
任何时候,包括内测期间,如果使用外网域名产生公网下行流量,都会收取流量费用。 所以强烈建议服务在腾讯云上的用户使用内网域名,内网不会产生流量费用。
输入参数有些是可选的,不填取默认值。
输出参数在成功情况下所有出参都会返回给用户;失败情况下,至少会有 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"}