修改:利元亨现场数据库密码加密

This commit is contained in:
yangyang01000846
2026-01-22 14:42:10 +08:00
parent cab634e401
commit 2b4da7d341
10 changed files with 76 additions and 24 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -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");
}
}

View File

@@ -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

View File

@@ -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:
# ?????????

View File

@@ -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
# 测试开发环境

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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