添加下面的代码,用新的混淆字典,随机大小写字母组合
package com.jiuhong.mbtirgtest.util;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class ObfuscationDictionaryGeneratorUtil {
public static void generateObfuscationDictionary(String filePath, int count) {
Set<String> uniqueWords = new HashSet<>(); // 使用 Set 确保唯一性
while (uniqueWords.size() < count) {
uniqueWords.add(generateRandomWord(3, 10));
}
try (FileWriter writer = new FileWriter(filePath)) {
for (String word : uniqueWords) {
writer.write(word + "\n");
}
System.out.println("混淆字典已生成: " + filePath);
} catch (IOException e) {
System.err.println("生成混淆字典失败: " + e.getMessage());
}
}
private static String generateRandomWord(int minLength, int maxLength) {
Random random = new Random();
int wordLength = random.nextInt(maxLength - minLength + 1) + minLength;
StringBuilder word = new StringBuilder(wordLength);
for (int i = 0; i < wordLength; i++) {
char randomChar = (char) (random.nextBoolean() ? 'A' + random.nextInt(26) : 'a' + random.nextInt(26));
word.append(randomChar);
}
return word.toString();
}
}
生成字典文件
// 调用方法生成混淆字典
String filePath = this.getFilesDir().getAbsolutePath() + "/obfuscation_dictionary.txt";
int count = 10000; // 生成 10000 条记录
ObfuscationDictionaryGeneratorUtil.generateObfuscationDictionary(filePath, count);
在Device Explorer找到这个文件
/data/user/0/com.j.mt/files/obfuscation_dictionary.txt
拖到APP目录下
在混淆文件中添加规则
#用于字段名和方法名混淆。
-obfuscationdictionary obfuscation_dictionary.txt
#用于类名混淆。
-classobfuscationdictionary obfuscation_dictionary.txt
#用于包名混淆。
-packageobfuscationdictionary obfuscation_dictionary.txt