全部產品
Search
文件中心

:Encrypt

更新時間:Jan 22, 2025

調用Encrypt介面使用對稱金鑰將明文加密為密文。

注意事項

  • 非KMS執行個體中的密鑰:進行密碼運算時,僅支援通過阿里雲SDK調用OpenAPI。
  • KMS執行個體中的密鑰:進行密碼運算時,支援如下兩種方式。

QPS限制

本介面的單使用者QPS限制為750次/秒。超過限制,API調用將會被限流,這可能影響您的業務,請合理調用。

詳細說明

  • KMS使用指定密鑰的主要版本對傳入資料進行加密。
  • 最多可加密6KB的資料,例如RSA密鑰、資料庫密碼或其它敏感資訊。
  • 如果將加密資料從一個地區遷移到另一個地區,可以調用Encrypt介面在新地區中加密從另一個地區中轉移過來的明文DataKey。新地區中會產生一個加密後的DataKey。您可以在新地區調用Decrypt將其解密。

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

請求參數

名稱

類型

是否必選

樣本值

描述

Action String Encrypt

要執行的操作。取值:Encrypt

KeyId String key-hzz630494463ejqjx****

密鑰的ID,也可以指定為密鑰別名或密鑰資源名稱(ARN)。關於別名的詳細介紹,請參見管理密鑰別名

說明 訪問其他阿里雲帳號下的密鑰時,必須輸入密鑰ARN。密鑰ARN的格式為acs:kms:${region}:${account}:key/${keyid}
Plaintext String SGVsbG8gd29y****

待加密明文(必須經過Base64編碼)。

EncryptionContext Map {"Example":"Example"}

key/value的JSON字串。如果指定了該參數,則在調用Decrypt時需要提供同樣的參數,詳情請參見EncryptionContext說明

DryRun String false

是否開啟DryRun模式。

  • true:開啟
  • false(預設值):關閉

DryRun模式用於測試API調用,驗證您是否具有相應資源的許可權,以及請求參數是否配置正確。DryRun模式開啟後,KMS會始終返回失敗並提示失敗原因。失敗原因包含如下:

  • DryRunOperationError:不配置DryRun參數時,請求會成功。
  • ValidationError:請求中指定的參數有誤。
  • AccessDeniedError:您無權在KMS資源上執行該操作。

返回資料

名稱

類型

樣本值

描述

KeyVersionId String 86a9efd9-3d16-4894-bd4f-1fc43f3f****

用於加密明文的密鑰版本標誌符。是指定密鑰的主要版本。

KeyId String key-hzz630494463ejqjx****

密鑰ID。如果請求中的KeyId參數使用的是密鑰別名、密鑰ARN,在響應中會返回密鑰ID。

CiphertextBlob String DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****

資料被指定密鑰的主要版本加密後的密文。

RequestId String 475f1620-b9d3-4d35-b5c6-3fbdd941423d

本次調用請求的ID,是由阿里雲為該請求產生的唯一識別碼,可用於排查和定位問題。

樣本

請求樣本

http(s)://[Endpoint]/?Action=Encrypt
&KeyId=key-hzz630494463ejqjx****
&Plaintext=SGVsbG8gd29y****
&DryRun=false
&公用請求參數

正常返回樣本

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<EncryptResponse>
    <KeyVersionId>86a9efd9-3d16-4894-bd4f-1fc43f3f****</KeyVersionId>
    <KeyId>key-hzz630494463ejqjx****</KeyId>
    <CiphertextBlob>DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****</CiphertextBlob>
    <RequestId>475f1620-b9d3-4d35-b5c6-3fbdd941423d</RequestId>
</EncryptResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "KeyVersionId" : "86a9efd9-3d16-4894-bd4f-1fc43f3f****",
  "KeyId" : "key-hzz630494463ejqjx****",
  "CiphertextBlob" : "DZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmaaSl+TztSIMe43nbTH/Z1Wr4XfLftKhAciUmDQXuMRl4WTvKhxjMThjK****",
  "RequestId" : "475f1620-b9d3-4d35-b5c6-3fbdd941423d"
}

錯誤碼

HttpCode

錯誤碼

錯誤資訊

描述

400 InvalidParameter The specified parameter is invalid. 參數錯誤
404 Forbidden.KeyNotFound The specified Key is not found. 指定的密鑰不存在。
404 Forbidden.AliasNotFound The specified Alias is not found. 指定的別名找不到

訪問錯誤中心查看更多錯誤碼。