一、概述
在线加密解密功能操作分两个 API 组成,分别如下:
| API 名称 | API 描述 | 说明 |
| Encrypt | 加密 | 该 API 操作的 KeyId 和 Plaintext 为必选参数,详情请参见 Encrypt 接口文档 |
| Decrypt | 解密 | 该 API 操作的 CiphertextBlob 为必选参数,详情请参见 Decrypt 接口文档 |
二、加密
通过 Encrypt 来针对用户的数据进行加密,用于加密的数据大小最多为4KB任意数据,可用于加密数据库密码,RSA Key,或其它较小的敏感信息。对于应用的数据加密,推荐使用 GenerateDataKey 生成的 DEK 进行本地数据的加解密操作。
这篇示例使用腾讯云 命令行工具 TCCLI,后续你可以使用任何受支持的编程语言调用。
三、加密示例
使用 TCCLI 调用加密接口时,需对明文数据进行 Base64 编码。本案例使用 This example is used for testing 文本案例。
四、输入
tccli kms Encrypt –KeyId 6xxxxxx-xxxx-xxxx-xxxx-5xxxxxxxxx5 –Plaintext "VGhpcyBleGFtcGxlIGlzIHVzZWQgZm9yIHRlc3Rpbmc="
五、输出
如成功执行,请求数据将返回密文和加密该明文的 CMK ID,其中密文将用来后续的解密操作。
{ "KeyId": "6xxxxxx-xxxx-xxxx-xxxx-5xxxxxxxxx5", "RequestId": "23781471-c213-44c5-92a4-731b882e25b5", "CiphertextBlob": "Rrnqz5fthTxcSdCYIw5pBoEWLvrdqYNZ0oXKOmvYx/1Oo2R+DqEFPjjfVA1n1RE8PmVITaxuJwu9ZANK9uK3WA==-k-fKVP3WIlGpg8m9LMW4jEkQ==-k-mFM/5PEiMJsKC6fagEOfdlocOyC+a1n8PqaTOlBLT+r****L*****qamMQ3ERsYIe0wYoAMszR/FBrCJZ3a3B7f+8Xg="}
六、解密示例
现在我们来针对加密数据进行解密。其中示例流程中的 CMK 以上述创建的 CMK 为例。
七、输入
tccli kms Decrypt –CiphertextBlob "Rrnqz5fthTxcSdCYIw5pBoEWLvrdqYNZ0oXKOmvYx/1Oo2R+DqEFPjjfVA1n1RE8PmVITaxuJwu9ZANK9uK3WA==-k-fKVP3WIlGpg8m9LMW4jEkQ==-k-mFM/5PEiMJsKC6fagEOfdlocOyC+a1n8PqaTOlBLT+r****LVHUVtqamM****sYIe0wYoAMszR/FBrCJZ3a3B7f+8Xg="
八、输出
如成功执行,请求数据将返回 Base64 编码的明文和加密该明文的 CMK ID。后续需要进行额外的 Base64 解密操作获取明文。
{ "Plaintext": "VGhpcyBleGFtcGxlIGlzIHVzZWQgZm9yIHRlc3Rpbmc=", "KeyId": "6xxxxxx-xxxx-xxxx-xxxx-5xxxxxxxxx5", "RequestId": "bcce3fae-****-****-****-d42780c10702"}