加密解密

最近更新时间:2019-10-31 09:22:32

概述

在线加密解密功能操作分两个 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+rqjyKLVHUVtqamMQ3ERsYIe0wYoAMszR/FBrCJZ3a3B7f+8Xg="
}

解密示例

现在我们来针对加密数据进行解密。其中示例流程中的 CMK 以上述创建的 CMK 为例。

输入

tccli kms Decrypt --CiphertextBlob 'Rrnqz5fthTxcSdCYIw5pBoEWLvrdqYNZ0oXKOmvYx/1Oo2R+DqEFPjjfVA1n1RE8PmVITaxuJwu9ZANK9uK3WA==-k-fKVP3WIlGpg8m9LMW4jEkQ==-k-mFM/5PEiMJsKC6fagEOfdlocOyC+a1n8PqaTOlBLT+rqjyKLVHUVtqamMQ3ERsYIe0wYoAMszR/FBrCJZ3a3B7f+8Xg='

输出

如成功执行,请求数据将返回 Base64 编码的明文和加密该明文的 CMK ID。后续需要进行额外的 Base64 解密操作获取明文。

{
    "Plaintext": "VGhpcyBleGFtcGxlIGlzIHVzZWQgZm9yIHRlc3Rpbmc=",
    "KeyId": "6xxxxxx-xxxx-xxxx-xxxx-5xxxxxxxxx5",
    "RequestId": "bcce3fae-1794-4136-a486-d42780c10702"
}