安装与配置
更新时间 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=jar
STEP2 添加依赖
安装完成之后在 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-4706fcd9b420
crypto-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不可同时为空。 |