全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件

GenerateDataKey

更新时间:2017-06-07 13:26:11

生成一个密钥,你可以用这个密钥进行本地数据的加密。这个API返回一个DataKey的明文Plaintext以及DataKey加密后的密文CiphertextBlob 。DataKey的加密是用keyid对应的主密钥加密的。可以调用Decrypt API进行解密。

  • 注意

    • 我们建议您使用以下方式在本地进行数据加密:调用GenerateDataKey API ,使用返回的明文DataKey在本地加密数据,然后删除内存中的明文DataKey。存储加密过的密钥CiphertextBlob和加密后的数据
    • 解密数据时,调用Decrypt API,用CiphertextBlob作为参数,调用成功,会返回DataKey的明文Plaintext,用Plaintext对本地加密的数据进行解密
  • 请求格式

  1. KeyId="string"&KeySpec="string"&NumberOfBytes=number&EncryptionContext=json
  • 请求参数

    • KeyId
      • 含义 : key的全局唯一标识符
      • 类型 : String
      • 是否必须 : 是
    • KeySpec
      • 含义 : 指定生成Datakey的加密算法以及Datakey大小,目前支持AES_128 或者 AES_256
      • 类型: String
      • 有效值: AES_256 | AES_128
      • 是否必须 : 否
    • NumberOfBytes(同时指定NumberOfBytes和KeySpec时,以NumberOfBytes为准)
      • 含义 : 生成的DataKey的长度
      • 类型 : integer
      • 有效值: 1 到 1024
      • 是否必须 : 否
    • EncryptionContext
  • 请求示例

  1. https://kms.cn-hangzhou.aliyuncs.com/?Action=GenerateDataKey
  2. &KeyId=<your-key-id>
  3. &KeySpec=AES_256
  4. &EncryptionContext={"Example":"Example"}
  5. &<其他公共参数>
  • 返回格式
  1. {
  2. "CiphertextBlob": blob, // blob为base64编码后的String
  3. "KeyId": "string",
  4. "Plaintext": blob, // blob为base64编码后的String
  5. "RequestId":"string"
  6. }
  • 返回参数

    • KeyId
      • 含义 : key的全局唯一标识符
      • 类型 : String
    • Plaintext
      • 含义 : 生成的DataKey的明文
      • 类型 : String
    • CiphertextBlob
      • 含义 : DataKey加密后的密文
      • 类型 : String
    • RequestId
      • 含义 : 随机的访问Id
      • 类型 : String
  • 返回示例

  1. //json response
  2. {
  3. "CiphertextBlob": "CiphertextBlob",
  4. "KeyId": "KeyId",
  5. "Plaintext": "Plaintext",
  6. "RequestId": "7021b6ec-4be7-4d3c-8a68-1e85d4d515a0"
  7. }
  8. //xml response
  9. <KMS>
  10. <CiphertextBlob>CiphertextBlob</CiphertextBlob>
  11. <KeyId>KeyId</KeyId>
  12. <Plaintext>Plaintext</Plaintext>
  13. <RequestId>7021b6ec-4be7-4d3c-8a68-1e85d4d515a0</RequestId>
  14. </KMS>
本文导读目录