From 2b4da7d341801bdb73f87dfd4d14c183c1bb47b8 Mon Sep 17 00:00:00 2001 From: yangyang01000846 <15195822163@163.com> Date: Thu, 22 Jan 2026 14:42:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=E5=88=A9=E5=85=83?= =?UTF-8?q?=E4=BA=A8=E7=8E=B0=E5=9C=BA=E6=95=B0=E6=8D=AE=E5=BA=93=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-lyric.yml | 6 +-- .../java/com/sdm/common/utils/AESUtil.java | 3 +- .../com/sdm/common/utils/RandomByteUtils.java | 54 +++++++++++++++++++ data/src/main/resources/application-lyric.yml | 6 +-- .../src/main/resources/application-lyric.yml | 2 +- outbridge/src/main/resources/common.yml | 5 +- pbs/src/main/resources/application-lyric.yml | 6 +-- .../src/main/resources/application-lyric.yml | 6 +-- .../src/main/resources/application-lyric.yml | 6 +-- task/src/main/resources/application-lyric.yml | 6 +-- 10 files changed, 76 insertions(+), 24 deletions(-) create mode 100644 common/src/main/java/com/sdm/common/utils/RandomByteUtils.java diff --git a/capability/src/main/resources/application-lyric.yml b/capability/src/main/resources/application-lyric.yml index 5da99cb5..4108b9eb 100644 --- a/capability/src/main/resources/application-lyric.yml +++ b/capability/src/main/resources/application-lyric.yml @@ -6,7 +6,7 @@ spring: name: capability datasource: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver hikari: @@ -17,12 +17,12 @@ spring: connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞) master: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver slave: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver enable: true diff --git a/common/src/main/java/com/sdm/common/utils/AESUtil.java b/common/src/main/java/com/sdm/common/utils/AESUtil.java index 6d4a6c47..d534796e 100644 --- a/common/src/main/java/com/sdm/common/utils/AESUtil.java +++ b/common/src/main/java/com/sdm/common/utils/AESUtil.java @@ -207,13 +207,14 @@ public class AESUtil { public static void main(String[] args) { try { // 优先读取JVM参数,然后环境变量参数,没有就报错 +// String spdmEnkey = "H7qGt/DO3VdaAVKzY3PNvQ=="; String spdmEnkey = StringUtils.isBlank(System.getProperty("spdm.enkey"))? System.getenv("spdm.enkey"):System.getProperty("spdm.enkey"); if(StringUtils.isBlank(spdmEnkey)){ throw new RuntimeException("spdm加密配置密钥读取失败!"); } System.out.println("密钥是:"+spdmEnkey); - String ret = encodeNew("我是原文:8899",spdmEnkey); + String ret = encodeNew("EP_DM@123.COM",spdmEnkey); System.out.println("encode:" + ret); String raw = decodeNew(ret,spdmEnkey); System.out.println("decode:" + raw); diff --git a/common/src/main/java/com/sdm/common/utils/RandomByteUtils.java b/common/src/main/java/com/sdm/common/utils/RandomByteUtils.java new file mode 100644 index 00000000..5e89fa75 --- /dev/null +++ b/common/src/main/java/com/sdm/common/utils/RandomByteUtils.java @@ -0,0 +1,54 @@ +package com.sdm.common.utils; + +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.PBEKeySpec; +import javax.crypto.spec.SecretKeySpec; +import java.security.spec.KeySpec; +import java.util.Base64; + +public class RandomByteUtils { + + public static void main(String[] args) throws Exception { + // 你的原始12字节密钥 + byte[] original12BytesKey = new byte[12]; + // 示例:填充随机值模拟你的12字节密钥(实际替换为你的真实密钥) + new java.security.SecureRandom().nextBytes(original12BytesKey); + + // 方案1:将12字节密钥扩展为16字节(128位)的合法AES密钥 + SecretKey validAesKey = generateValidAesKey(original12BytesKey, 16); + // 验证密钥长度(输出16) + byte[] encoded = validAesKey.getEncoded(); + System.out.println("合法AES密钥:"+Base64.getEncoder().encodeToString(encoded)); + System.out.println("合法AES密钥长度(字节): " + validAesKey.getEncoded().length); + + } + + /** + * 将任意长度的原始密钥派生为指定长度的合法AES密钥 + * @param originalKey 原始密钥(如12字节) + * @param targetLength 目标长度(16/24/32) + * @return 合法AES密钥 + */ + private static SecretKey generateValidAesKey(byte[] originalKey, int targetLength) throws Exception { + // 盐值(随机生成,实际使用时建议固定或持久化) + byte[] salt = new byte[16]; + new java.security.SecureRandom().nextBytes(salt); + + // PBKDF2密钥派生参数(迭代次数建议≥10000) + KeySpec spec = new PBEKeySpec( + new String(originalKey).toCharArray(), // 原始密钥转为字符数组 + salt, // 盐值 + 65536, // 迭代次数 + targetLength * 8 // 目标密钥长度(位) + ); + + // 生成派生密钥 + SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); + byte[] derivedKey = factory.generateSecret(spec).getEncoded(); + + // 转换为AES密钥 + return new SecretKeySpec(derivedKey, "AES"); + } + +} diff --git a/data/src/main/resources/application-lyric.yml b/data/src/main/resources/application-lyric.yml index 4ad83a03..ef3fe1ad 100644 --- a/data/src/main/resources/application-lyric.yml +++ b/data/src/main/resources/application-lyric.yml @@ -6,7 +6,7 @@ spring: name: data datasource: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver hikari: @@ -22,12 +22,12 @@ spring: connection-timeout: 30000 # 30s master: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver slave: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver enable: true diff --git a/flowable/src/main/resources/application-lyric.yml b/flowable/src/main/resources/application-lyric.yml index 045deee0..3ad5c6a0 100644 --- a/flowable/src/main/resources/application-lyric.yml +++ b/flowable/src/main/resources/application-lyric.yml @@ -6,7 +6,7 @@ spring: datasource: url: jdbc:mysql://192.168.30.146:3306/flowable?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) driver-class-name: com.mysql.cj.jdbc.Driver flowable: # ????????? diff --git a/outbridge/src/main/resources/common.yml b/outbridge/src/main/resources/common.yml index a667a64d..cb9cb324 100644 --- a/outbridge/src/main/resources/common.yml +++ b/outbridge/src/main/resources/common.yml @@ -2,12 +2,9 @@ spring: datasource: second: username: EP_DM - password: EP_DM@123.COM -# username: root -# password: mysql + password: ENC(c04rt9Z6Ygz024EU9eWvig==) # todo 生产地址 jdbc-url: jdbc:mysql://10.122.48.11:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai -# jdbc-url: jdbc:mysql://127.0.0.1:3306/second_db?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver # 测试开发环境 diff --git a/pbs/src/main/resources/application-lyric.yml b/pbs/src/main/resources/application-lyric.yml index 86790438..4a74ef95 100644 --- a/pbs/src/main/resources/application-lyric.yml +++ b/pbs/src/main/resources/application-lyric.yml @@ -6,7 +6,7 @@ spring: name: pbs datasource: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver hikari: @@ -22,12 +22,12 @@ spring: connection-timeout: 30000 # 30s master: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver slave: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver enable: true diff --git a/project/src/main/resources/application-lyric.yml b/project/src/main/resources/application-lyric.yml index 9aad8b80..093b611d 100644 --- a/project/src/main/resources/application-lyric.yml +++ b/project/src/main/resources/application-lyric.yml @@ -6,7 +6,7 @@ spring: name: project datasource: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver hikari: @@ -22,12 +22,12 @@ spring: connection-timeout: 30000 # 30s master: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver slave: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver enable: true diff --git a/system/src/main/resources/application-lyric.yml b/system/src/main/resources/application-lyric.yml index b4200382..39ab405d 100644 --- a/system/src/main/resources/application-lyric.yml +++ b/system/src/main/resources/application-lyric.yml @@ -6,7 +6,7 @@ spring: name: system datasource: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver hikari: @@ -22,12 +22,12 @@ spring: connection-timeout: 30000 # 30s master: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver slave: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver enable: true diff --git a/task/src/main/resources/application-lyric.yml b/task/src/main/resources/application-lyric.yml index 21e878e1..31de17e4 100644 --- a/task/src/main/resources/application-lyric.yml +++ b/task/src/main/resources/application-lyric.yml @@ -7,7 +7,7 @@ spring: name: task datasource: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver hikari: @@ -23,12 +23,12 @@ spring: connection-timeout: 30000 # 30s master: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver slave: username: root - password: mysql + password: ENC(o5nKvbyfceJryxfBBGTi9w==) jdbc-url: jdbc:mysql://192.168.30.146:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver enable: true