文档首页/ 数据加密服务 DEW/ API参考/ 应用示例/ 示例1:加解密小量数据
更新时间:2023-12-26 GMT+08:00

示例1:加解密小量数据

场景描述

当您需加解密不大于4KB的小量数据(例如:口令、证书、电话号码等)时,您可以通过KMS界面使用在线工具加解密数据,或者调用KMS的API接口使用指定的用户主密钥直接加密、解密数据。

流程如下:
  1. 用户需要在KMS中创建一个用户主密钥。
  2. 用户调用KMS的“encrypt-data”接口,使用指定的用户主密钥将明文数据加密为密文数据。
  3. 用户在服务器上部署密文证书。
  4. 当服务器需要使用证书时,调用KMS的“decrypt-data”接口,将密文数据解密为密文证书。

加解密API

加解密小数据时,涉及的API如下:

操作步骤

  1. 创建用户主密钥。

    • 接口相关信息

      URI格式:POST /v1.0/{project_id}/kms/create-key

      详情请参见创建密钥

      别名“/default”为服务默认主密钥的后缀名,由服务自动创建。因此用户创建的主密钥别名不能与服务默认主密钥的别名相同,即后缀名不能为“/default”

    • 请求示例

      POST: https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/create-key

      {endpoint}信息请从地区和终端节点获取。

      Body:

      {
          "key_alias": "test"
      }
    • 响应示例
      {
          "key_info": {
              "key_id": "bb6a3d22-dc93-47ac-b5bd-88df7ad35f1e",
              "domain_id": "b168fe00ff56492495a7d22974df2d0b"
          }
      }

  2. 加密数据。

    • 接口相关信息

      URI格式:POST /v1.0/{project_id}/kms/encrypt-data

      详情请参见加密数据

    • 请求示例

      POST https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/encrypt-data

      {endpoint}信息请从地区和终端节点获取。

      您可使用查询密钥列表接口获取当前用户密钥列表,包括key_id等信息 。

      Body:

      {
          "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f",
          "plain_text": "12345678"
      }
    • 响应示例
      {     "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f",
           "cipher_text": "AgDoAG7EsEc2OHpQxz4gDFDH54CqwaelpTdEl+RFPjbKn5klPTvOywYIeZX60kPbFsYOpXJwkL32HUM50MY22Eb1fOSpZK7WJpYjx66EWOkJvO+Ey3r1dLdNAjrZrYzQlxRwNS05CaNKoX5rr3NoDnmv+UNobaiS25muLLiqOt6UrStaWow9AUyOHSzl+BrX2Vu0whv74djK+3COO6cXT2CBO6WajTJsOgYdxMfv24KWSKw0TqvHe8XDKASQGKdgfI74hzI1YWJlNjlmLWFlMTAtNDRjZC1iYzg3LTFiZGExZGUzYjdkNwAAAACdcfNpLXwDUPH3023MvZK8RPHe129k6VdNIi3zNb0eFQ==" 
      }

  3. 解密数据。

    • 接口相关信息

      URI格式:POST /v1.0/{project_id}/kms/decrypt-data

      详情请参见解密数据

    • 请求示例

      POST https://{endpoint}/v1.0/53d1aefc533f4ce9a59c26b01667cbcf/kms/decrypt-data

      {endpoint}信息请从地区和终端节点获取。

      您可使用查询密钥列表接口获取当前用户密钥列表,包括key_id等信息 。

      Body:

      {      "cipher_text": "AgDoAG7EsEc2OHpQxz4gDFDH54CqwaelpTdEl+RFPjbKn5klPTvOywYIeZX60kPbFsYOpXJwkL32HUM50MY22Eb1fOSpZK7WJpYjx66EWOkJvO+Ey3r1dLdNAjrZrYzQlxRwNS05CaNKoX5rr3NoDnmv+UNobaiS25muLLiqOt6UrStaWow9AUyOHSzl+BrX2Vu0whv74djK+3COO6cXT2CBO6WajTJsOgYdxMfv24KWSKw0TqvHe8XDKASQGKdgfI74hzI1YWJlNjlmLWFlMTAtNDRjZC1iYzg3LTFiZGExZGUzYjdkNwAAAACdcfNpLXwDUPH3023MvZK8RPHe129k6VdNIi3zNb0eFQ=="
       }
    • 响应示例
      {   
          "key_id": "0d0466b0-e727-4d9c-b35d-f84bb474a37f",
           "plain_text": "12345678"
       }