GenerateDataKey
調(diào)用GenerateDataKey接口生成數(shù)據(jù)密鑰。
使用說明
概述
本接口通過隨機(jī)數(shù)生成器產(chǎn)生數(shù)據(jù)密鑰,使用KMS密鑰的初始版本對(duì)數(shù)據(jù)密鑰加密,并返回?cái)?shù)據(jù)密鑰的明文和密文。您可以使用返回的數(shù)據(jù)密鑰明文(Plaintext),在KMS之外對(duì)數(shù)據(jù)進(jìn)行加密。請(qǐng)保存數(shù)據(jù)密鑰密文(CiphertextBlob)、初始向量(Iv)、加密算法(Algorithm)和認(rèn)證數(shù)據(jù)(Aad),以便后續(xù)對(duì)數(shù)據(jù)進(jìn)行解密。
關(guān)于密鑰規(guī)格以及加密模式的詳細(xì)信息,請(qǐng)參見密鑰管理類型和密鑰規(guī)格。
對(duì)數(shù)據(jù)密鑰加密時(shí)僅支持GCM加密模式。
數(shù)據(jù)密鑰內(nèi)容由KMS通過高質(zhì)量的隨機(jī)數(shù)生成器產(chǎn)生,與加密它的KMS密鑰材料內(nèi)容無關(guān)。
和AdvanceGenerateDataKey的區(qū)別
GenerateDataKey和AdvanceGenerateDataKey都用于生成數(shù)據(jù)密鑰,區(qū)別為:
GenerateDataKey:加密時(shí)使用密鑰的初始版本,加密后您需要存儲(chǔ)數(shù)據(jù)密鑰密文(CiphertextBlob)、初始向量(Iv)、加密算法(Algorithm)和認(rèn)證數(shù)據(jù)(Aad),然后使用Decrypt或AdvanceDecrypt解密。
AdvanceGenerateDataKey:僅當(dāng)密鑰為軟件密鑰管理實(shí)例的對(duì)稱密鑰時(shí)支持使用該接口。加密時(shí)使用密鑰的主版本,加密后您需要存儲(chǔ)數(shù)據(jù)密鑰密文(CiphertextBlob)和認(rèn)證數(shù)據(jù)(Aad),然后使用AdvanceDecrypt解密。
重要如果密鑰為軟件密鑰管理實(shí)例的對(duì)稱密鑰,且開啟了自動(dòng)輪轉(zhuǎn),生成數(shù)據(jù)密鑰時(shí)請(qǐng)使用AdvanceGenerateDataKey,以避免輪轉(zhuǎn)功能不生效。關(guān)于密鑰輪轉(zhuǎn)的相關(guān)內(nèi)容,請(qǐng)參見密鑰輪轉(zhuǎn)。
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 示例值 | 描述 |
KeyId | string | 是 | key-hzz62f1cb66fa42qo**** | 密鑰的全局唯一標(biāo)識(shí)符。該參數(shù)也可以被指定為密鑰別名。 |
NumberOfBytes | int | 是 | 32 | 生成的數(shù)據(jù)密鑰的長(zhǎng)度。 |
Aad | binary | 否 | 二進(jìn)制數(shù)據(jù) | 對(duì)數(shù)據(jù)密鑰加密時(shí)使用的GCM加密模式認(rèn)證數(shù)據(jù)。 重要 對(duì)數(shù)據(jù)密鑰加密時(shí)僅支持GCM加密模式。如果指定了該參數(shù),調(diào)用Decrypt解密時(shí)需要指定相同的參數(shù)。 |
響應(yīng)數(shù)據(jù)
名稱 | 類型 | 示例值 | 描述 |
KeyId | string | key-hzz62f1cb66fa42qo**** | 密鑰的全局唯一標(biāo)識(shí)符。如果請(qǐng)求中的KeyId參數(shù)使用的是密鑰別名,在響應(yīng)中會(huì)返回對(duì)應(yīng)密鑰的全局唯一標(biāo)識(shí)符。 |
Iv | bytes | 二進(jìn)制數(shù)據(jù) | 加密數(shù)據(jù)密鑰時(shí)使用的初始向量。 說明 調(diào)用Decrypt對(duì)數(shù)據(jù)密鑰解密時(shí)必須傳入正確的Iv才能成功解密。 |
Plaintext | bytes | 二進(jìn)制明文 | 數(shù)據(jù)密鑰明文。 |
CiphertextBlob | bytes | 二進(jìn)制密文 | 數(shù)據(jù)密鑰密文。 |
Algorithm | string | AES_GCM | 加密算法。 |
RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | 本次調(diào)用請(qǐng)求的ID,是由阿里云為該請(qǐng)求生成的唯一標(biāo)識(shí)符,可用于排查和定位問題。 |
錯(cuò)誤碼
訪問公共錯(cuò)誤碼查看更多錯(cuò)誤碼。