調用Encrypt接口將明文加密為密文。
使用說明
Encrypt和AdvanceEncrypt都用于將明文數據加密為密文,區別為:
Encrypt:加密時使用密鑰的初始版本,加密后可以使用Decrypt或AdvanceDecrypt解密。
AdvanceEncrypt:加密時使用密鑰的主版本,加密后需要使用AdvanceDecrypt解密。但目前僅KMS軟件密鑰管理實例中的對稱密鑰支持使用該接口。
如果您使用KMS軟件密鑰管理實例中的對稱密鑰,且密鑰開啟了自動輪轉,加密時請使用AdvanceEncrypt,以避免輪轉功能不生效。關于密鑰輪轉的相關內容,請參見密鑰輪轉。
關于密鑰規格、加密模式以及密鑰版本的詳細信息,請參見密鑰管理類型和密鑰規格。
注意事項
所有請求參數使用Protocol Buffers編碼后(即Request Body),內容長度不能超過3 MB,超過3 MB后服務端會拒絕處理并返回HTTP 413狀態碼。建議單次使用對稱密鑰加解密的數據不超過6 KB,單次使用非對稱密鑰加解密的數據不超過1 KB,超過后請使用信封加密方案。詳細信息,請參見使用KMS密鑰進行信封加密。
單次加解密的數據量越大,網絡傳輸失敗可能性越大,網絡傳輸所需時間越長,KMS實例對數據進行加解密所需時間也越長。
請求參數
名稱 | 類型 | 是否必選 | 示例值 | 描述 |
KeyId | string | 是 | key-hzz62f1cb66fa42qo**** | 密鑰的全局唯一標識符。該參數也可以被指定為密鑰別名。 |
Plaintext | bytes | 是 | 二進制數據 | 待加密的明文數據。 |
Algorithm | string | 否 | AES_GCM | 加密算法。 如果未指定本參數,KMS會使用加密算法默認值。更多信息,請參見密鑰管理類型和密鑰規格。 |
Iv | bytes | 否 | 二進制數據 | 對數據加密時使用的初始向量。 僅當加密算法(Algorithm參數)為AES_GCM、AES_CBC或SM4_GCM時本參數有效。
如果未指定本參數,KMS將隨機生成。 重要 推薦您不指定本參數,由KMS隨機生成。 |
Aad | binary | 否 | 二進制數據 | 對數據加密時使用的GCM加密模式認證數據。 當密鑰是對稱密鑰、加密算法(Algorithm)是AES_GCM或SM4_GCM時,您可以按需要使用本參數。 重要 如果指定了本參數,調用Decrypt解密時需要指定相同的參數。 |
PaddingMode | string | 否 | PKCS7_PADDING | 填充模式。 僅當加密算法為AES_CBC或AES_ECB時,需要提供本參數。 取值:
|
響應數據
名稱 | 類型 | 示例值 | 描述 |
Iv | bytes | 二進制數據 | 加密數據時使用的初始向量。 僅當加密算法(Algorithm參數)為AES_GCM、AES_CBC或SM4_GCM時,本參數返回有效值,其他場景返回空值。 |
CiphertextBlob | bytes | 二進制數據 | 數據被指定密鑰加密后的密文。 說明 當采用ECIES算法時,返回的密文格式遵循SEC 1: Elliptic Curve Cryptography, Version 2.0標準。 |
KeyId | string | key-hzz62f1cb66fa42qo**** | 密鑰的全局唯一標識符。如果請求中的KeyId參數使用的是密鑰別名,在響應中會返回別名對應的密鑰的全局唯一標識符。 |
Algorithm | string | AES_GCM | 加密算法。 |
PaddingMode | string | PKCS7_PADDING | 填充模式。僅當加密算法(Algorithm參數)為AES_CBC或AES_ECB時,本參數返回有效值,其他場景返回空值。 |
RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | 本次調用請求的ID,是由阿里云為該請求生成的唯一標識符,可用于排查和定位問題。 |
錯誤碼
訪問公共錯誤碼查看更多錯誤碼。