Skip to content
This repository was archived by the owner on Sep 5, 2025. It is now read-only.

Commit 59d6539

Browse files
committed
[功能] 对于错误和默认的 AES KEY 配置自动生成随机的
1 parent 20853a0 commit 59d6539

File tree

4 files changed

+23
-17
lines changed

4 files changed

+23
-17
lines changed

CHANGELOG.MD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
更新日志:
1010

1111
- [功能] 支持配置随机数来源为 `CPU``RDRAND` 指令
12+
- [功能] 对于错误和默认的 `AES KEY` 配置自动生成随机的
1213
- [BUG] 不应该对 `JNI` 类进行混淆
1314

1415
感谢以下用户的贡献:

src/main/java/me/n1ar4/jar/obfuscator/config/Manager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public static boolean initConfig(BaseConfig config) {
7575
ObfEnv.ADVANCE_STRING_NAME = config.getAdvanceStringName();
7676

7777
StringDecrypt.changeKEY(config.getStringAesKey());
78-
StringDecryptDump.changeKEY(config.getStringAesKey());
78+
StringDecryptDump.changeKEY();
7979
StringDecryptDump.initName(
8080
config.getDecryptClassName(),
8181
config.getDecryptMethodName(),

src/main/java/me/n1ar4/jar/obfuscator/templates/StringDecrypt.java

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.n1ar4.jar.obfuscator.templates;
22

3+
import me.n1ar4.jrandom.core.JRandom;
34
import me.n1ar4.log.LogManager;
45
import me.n1ar4.log.Logger;
56

@@ -11,19 +12,30 @@
1112

1213
public class StringDecrypt {
1314
private static final Logger logger = LogManager.getLogger();
14-
private static String KEY = null;
15+
public static String KEY = null;
1516
private static final String ALGORITHM = "AES";
1617
private static final Charset CHARSET = StandardCharsets.UTF_8;
1718

1819
public static void changeKEY(String key) {
19-
if (key != null && key.length() == 16) {
20-
KEY = key;
21-
logger.info("change encrypt aes key to: {}", key);
20+
if (key == null) {
21+
KEY = JRandom.getInstance().randomString(16);
22+
logger.info("设置随机 AES_KEY 为 " + KEY);
2223
return;
2324
}
24-
key = "Y4SuperSecretKey";
25-
logger.warn("aes encrypt key length muse be 16");
26-
logger.info("change encrypt aes key to: {}", key);
25+
if (key.equals("Y4SuperSecretKey")) {
26+
logger.warn("默认 AES_KEY 是不安全的");
27+
KEY = JRandom.getInstance().randomString(16);
28+
logger.info("设置随机 AES_KEY 为 " + KEY);
29+
} else {
30+
if (key.length() == 16) {
31+
KEY = key;
32+
logger.info("change encrypt aes key to: {}", key);
33+
} else {
34+
logger.warn("AES_KEY 长度必须是 16 当前长度是 " + key.length());
35+
KEY = JRandom.getInstance().randomString(16);
36+
logger.info("设置随机 AES_KEY 为 " + KEY);
37+
}
38+
}
2739
}
2840

2941
public static String encrypt(String input) {

src/main/java/me/n1ar4/jar/obfuscator/templates/StringDecryptDump.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,8 @@ public class StringDecryptDump implements Opcodes {
1111
public static String methodName = null;
1212
private static String keyName = null;
1313

14-
public static void changeKEY(String key) {
15-
if (key != null && key.length() == 16) {
16-
AES_KEY = key;
17-
logger.info("change decrypt aes key to: {}", key);
18-
return;
19-
}
20-
AES_KEY = "Y4SuperSecretKey";
21-
logger.warn("aes decrypt key length muse be 16");
22-
logger.info("change decrypt aes key to: {}", key);
14+
public static void changeKEY() {
15+
AES_KEY = StringDecrypt.KEY;
2316
}
2417

2518
public static void initName(String c, String m, String k) {

0 commit comments

Comments
 (0)