安裝與配置
更新時間 2025-08-27 15:08:02
最近更新時間: 2025-08-27 15:08:02
分享文章
客戶端加密 SDK 是一個用于數據加密和解密的 Java算法庫,支持多種加密算法和密鑰管理策略。本 SDK 提供了簡單易用的API,幫助開發者快速實現數據的安全加密和解密操作。
前提條件
已開通KMS包周期服務。
已完成應用接入點創建,獲取KMS應用接入點地址。
已完成訪問憑證AKSK創建。
已完成用戶主密鑰資源創建。
下載SDK
請點擊下載SDK:客戶端加密SDK.zip
安裝與配置
STEP1 安裝依賴
下載編譯好的jar包,在項目根目錄創建lib目錄,并將jar包放入項目lib目錄。
然后執行以下maven命令安裝到本地倉庫。
# 安裝kms終端節點sdk
mvn install:install-file -Dfile=lib/ctyun-encryption-sdk-java-1.0.0.jar -DgroupId=cn.ctyun -DartifactId=ctyun-encryption-sdk-java -Dversion=1.0.0 -Dpackaging=jarSTEP2 添加依賴
安裝完成之后在 pom.xml 中添加以下依賴:
<dependency>
<groupId>cn.ctyun</groupId>
<artifactId>ctyun-encryption-sdk-java</artifactId>
<version>1.0.0</version>
</dependency>STEP3 配置文件
在項目資源目錄resources的根目錄下創建 crypto-config.yaml 文件,配置加密參數:
ctyun:
crypto:
useUniqueDataKeyPerEncrypt: true
keyProvider: KMS_CMK
local:
cmk: X0UawdOxtOMbt89jbznSEg==
kms:
ak: 09bc65a7aeea902c67dfa006c797795f
sk: 2e10dd702651e2442fe478f2d9777db5
endpoint: ip:port
cmkId: e64b31c0-3877-445f-9865-bce1b6aacdef
dekId: b0a116ed-de01-49bb-b2a7-4706fcd9b420crypto-config.yaml配置詳解
crypto-config.yaml是客戶端加密SDK的配置文件,用于設置加密相關的參數。
以下是配置文件的詳細說明:
注意
確保ak和sk的安全性,避免泄露。
cmk和dekId需要與KMS服務中的實際密鑰ID一致,且不能同時為空。
endpoint需要正確配置為可訪問的KMS服務地址。
| 參數 | 類型 | 默認值 | 描述 | 適用場景 |
|---|---|---|---|---|
| ctyun.crypto.useUniqueDataKeyPerEncrypt | boolean | true | 指定是否每次加密時使用唯一的數據密鑰。
| 適用于需要高安全性的場景,確保每次加密操作都使用不同的密鑰。 |
| ctyun.crypto.keyProvider | string | KMS_CMK | 指定密鑰提供者的類型。當前支持的值為:
| 適用于用戶按需進行配置使用 KMS 管理密鑰或者本地管理密鑰的場景。 |
| ctyun.crypto.local.cmk | string | - | 本地存儲的客戶主密鑰(CMK),用于本地加密操作。 該密鑰需要以 Base64 編碼形式提供。 | 適用于本地加密操作,不需要依賴外部 KMS 服務的場景。 |
| ctyun.crypto.kms.ak | string | - | KMS 服務的訪問密鑰(Access Key),用于身份驗證。 | 適用于需要訪問 KMS 服務的場景。 |
| ctyun.crypto.kms.sk | string | - | KMS 服務的秘密密鑰(Secret Key),用于身份驗證。 | 適用于需要訪問 KMS 服務的場景。 |
| ctyun.crypto.kms.endpoint | string | - | KMS 服務的端點地址,格式為IP:Port。 | 適用于需要指定 KMS 服務地址的場景。 |
| ctyun.crypto.kms.cmkId | string | - | KMS 服務中的客戶主密鑰(CMK)ID,用于標識特定的 CMK。 | 適用于需要指定特定 CMK 的場景,dekId與cmkId不可同時為空。 |
| ctyun.crypto.kms.dekId | string | - | KMS 服務中的數據加密密鑰(DEK)ID,用于標識特定的 DEK。 | 適用于需要指定特定 DEK 的場景,dekId與cmkId不可同時為空。 |