文本加密代码: 自动加密字符串,并输出加密后的代码。 (gitee.com)
用于代码混淆
源码
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Random;
// Press ⇧ twice to open the Search Everywhere dialog and type `show whitespaces`,
// then press Enter. You can now see whitespace characters in your code.
public class Main {
public static int maxRandomLines1 = 10;
public static int maxRandomLines2 = 10;
public static int maxRandomLines3 = 20;
public static void main(String[] args) {
while (true) {
if (!extracted()) {
break;
}
}
}
private static boolean extracted() {
String string = "";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("\nWhat's your string? ");
try {
string = br.readLine();
if (string.equals("exit()")) {
return false;
}
} catch (Exception e) {
e.printStackTrace();
}
int pad = new Random().nextInt(1000);
int padArgus = 0xFFFF;
int[] ints = new int[string.length()];
for (int i = 0; i < string.length(); i++) {
char a = string.charAt(i);
int b = ~((int) a ^ padArgus) - pad;
ints[i] = b;
}
StringBuilder s = new StringBuilder();
for (int anInt : ints) {
int a = anInt;
a += pad;
s.append((char) (a & padArgus));
}
System.out.println("测试加密解密成功:" + s);
System.out.println("开始生成代码:\n");
StringBuilder sb = new StringBuilder();
String random2hidePadArgusName = getRandomString();
String random2hidePadArgusSubName = getRandomString();
String padArgusName = getRandomString();
String argsArrayName = getRandomString();
String intsArrayName = getRandomString();
String resultStringName = getRandomString();
String indexStringName = getRandomString();
String itemStringName = getRandomString();
String zeroStrName = getRandomString();
String zeroIndexName = getRandomString();
String oneIndexName = getRandomString();
String oneRealIndexName = getRandomString();
String twoIndexName = getRandomString();
String twoRealIndexName = getRandomString();
String zeroRealIndexName = getRandomString();
int random2hidePadArgus = new Random().nextInt(padArgus);
sb.append("int ").append(random2hidePadArgusName).append(" = ").append(random2hidePadArgus).append(";");
sb.append("\n");
sb.append("int ").append(random2hidePadArgusSubName).append(" = ").append(padArgus - random2hidePadArgus).append(";");
sb.append("\n");
sb.append("int ").append(padArgusName).append(" = ").append(random2hidePadArgusName).append(" + ").append(random2hidePadArgusSubName).append(";");
sb.append("\n");
// 0
String leftZeroStr = getRandomString();
int zeroIndex = leftZeroStr.length();
String zeroStr = leftZeroStr + "0" + getRandomString();
// Integer.parseInt(String.valueOf(zeroStr.charAt(zeroIndex)));
sb.append("int ").append(zeroIndexName).append(" = ").append(zeroIndex).append(";");
sb.append("\n");
// 1
int oneIndex = zeroStr.length();
zeroStr = zeroStr + "1" + getRandomString();
sb.append("int ").append(oneIndexName).append(" = ").append(oneIndex).append(";");
sb.append("\n");
// 2
int twoIndex = zeroStr.length();
zeroStr = zeroStr + "2" + getRandomString();
sb.append("int ").append(twoIndexName).append(" = ").append(twoIndex).append(";");
sb.append("\n");
sb.append("String ").append(zeroStrName).append(" = \"").append(zeroStr).append("\";");
sb.append("\n");
sb.append("int ").append(zeroRealIndexName).append(" = ").append("Integer.parseInt(String.valueOf(").append(zeroStrName).append(".charAt(").append(zeroIndexName).append(")));");
sb.append("\n");
sb.append("int ").append(oneRealIndexName).append(" = ").append("Integer.parseInt(String.valueOf(").append(zeroStrName).append(".charAt(").append(oneIndexName).append(")));");
sb.append("\n");
sb.append("int ").append(twoRealIndexName).append(" = ").append("Integer.parseInt(String.valueOf(").append(zeroStrName).append(".charAt(").append(twoIndexName).append(")));");
sb.append("\n");
sb.append("int ").append(argsArrayName).append("[] = ").append("{").append(pad).append(",").append(padArgusName).append(",").append(zeroRealIndexName);
for (int i = 0; i < new Random().nextInt(maxRandomLines1); i++) {
sb.append(",").append(new Random().nextInt(Integer.MAX_VALUE));
}
sb.append("};");
sb.append("\n");
sb.append("int ").append(intsArrayName).append("[] = ").append("{");
for (int i = 0; i < ints.length; i++) {
// sb.append("0x").append(Integer.toHexString(ints[i]));
sb.append(ints[i]);
if (i < ints.length - 1) {
sb.append(", ");
}
}
sb.append("};");
sb.append("\n");
sb.append("String ").append(resultStringName).append(" = \"\";");
sb.append("\n");
int lineRandom = new Random().nextInt(4);
sb.append("for (int ").append(indexStringName).append(" = ").append(argsArrayName).append("[").append(twoRealIndexName).append("]").append("; ").append(indexStringName).append(" < ").append(intsArrayName).append(".length; ").append(indexStringName).append("++) {");
sb.append("\n");
if (lineRandom == 0) {
sb.append(getRandomCode());
}
sb.append(" ").append("int ").append(itemStringName).append(" = ").append(intsArrayName).append("[").append(indexStringName).append("];");
sb.append("\n");
if (lineRandom == 1) {
sb.append(getRandomCode());
}
sb.append(" ").append(itemStringName).append(" += ").append(argsArrayName).append("[").append(zeroRealIndexName).append("]").append(";");
sb.append("\n");
if (lineRandom == 2) {
sb.append(getRandomCode());
}
sb.append(" ").append(resultStringName).append(" += ").append("(char)(").append(itemStringName).append(" & ").append(argsArrayName).append("[").append(oneRealIndexName).append("]").append(");");
sb.append("\n");
if (lineRandom == 3) {
sb.append(getRandomCode());
}
sb.append("}");
sb.append("\n");
sb.append("//==>").append(string).append("<==");
sb.append("\n");
sb.append("String resultString = ").append(resultStringName).append(";");
sb.append("\n");
System.out.println(sb);
StringSelection stringSelection = new StringSelection(sb.toString());
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);
System.out.println("===========内容已复制到剪切板===========");
System.out.println("==>"+ string +"<==");
return true;
}
public static StringBuilder getRandomCode() {
StringBuilder sb = new StringBuilder();
String str1Name = getRandomString();
String str2Name = getRandomString();
String str3Name = getRandomString();
String str4Name = getRandomString();
sb.append("\n");
String str1Value = getRandomString();
sb.append(" String ").append(str1Name).append(" = \"").append(str1Value).append("\";");
sb.append("\n");
String str2Value = getRandomString();
sb.append(" String ").append(str2Name).append(" = \"").append(str2Value).append("\";");
sb.append("\n");
sb.append(" String ").append(str3Name).append(" = ").append(str1Name).append(" + ").append(str2Name).append(";");
sb.append("\n");
sb.append(" String ").append(str4Name).append(" = \"\"").append(";");
sb.append("\n");
int r = new Random().nextInt(maxRandomLines2);
for (int i = 0; i < r; i++) {
String randomStrName = getRandomString();
String randomStr = getRandomString();
sb.append(" String ").append(randomStrName).append(" = \"").append(randomStr).append("\";");
sb.append("\n");
int randomIndex = new Random().nextInt(randomStr.length());
sb.append(" ").append(str4Name).append(" = ").append(str4Name).append(" + ").append(randomStrName).append(".charAt(").append(randomIndex).append(");");
sb.append("\n");
}
int strLength = (str1Value + str2Value).length() + r;
sb.append(" if((").append(str3Name).append(" + ").append(str4Name).append(").length() > ").append(strLength).append("){");
sb.append("\n");
int rr = new Random().nextInt(maxRandomLines3);
String cacheName = str4Name;
for (int i = 0; i < rr; i++) {
//int
//long
//boolean
//String
//double
//float
String lastRandomName = getRandomString();
String type = "int";
String typeValueOf = "Integer.valueOf";
int typeRandom = new Random().nextInt(5);
int subRandom = new Random().nextInt(8);
String sub = "+"; // + - * / & ^ |
if (typeRandom == 1) {
type = "long";
typeValueOf = "Long.valueOf";
} else if (typeRandom == 2) {
type = "int";
typeValueOf = "Integer.valueOf";
} else if (typeRandom == 3) {
type = "double";
typeValueOf = "Double.valueOf";
} else if (typeRandom == 4) {
type = "float";
typeValueOf = "Float.valueOf";
}
if (subRandom == 1) {
sub = "-"; // + - * / & ^ |
} else if (subRandom == 2) {
sub = "*"; // + - * / & ^ |
} else if (subRandom == 3) {
sub = "/"; // + - * / & ^ |
} else if (subRandom == 4) {
sub = "&"; // + - * / & ^ |
} else if (subRandom == 5) {
sub = "^"; // + - * / & ^ |
} else if (subRandom == 6) {
sub = "|"; // + - * / & ^ |
} else if (subRandom == 7) {
sub = "%"; // + - * / & ^ |
}
sb.append(" ").append(type).append(" ").append(lastRandomName).append(" = ")
.append(typeValueOf).append("(")
.append("((Integer.valueOf(String.valueOf(").append(cacheName).append(")))").append(sub)
.append(new Random().nextInt(Integer.MAX_VALUE))
.append(") + \"\")").append(";");
cacheName = lastRandomName;
sb.append("\n");
}
int fssdfe = new Random().nextInt(2);
if (fssdfe == 0) {
sb.append(" ").append("try {");
sb.append("\n");
sb.append(" ").append(" throw new java.lang.Throwable(String.valueOf(").append(cacheName).append("));");
sb.append("\n");
sb.append(" ").append("} catch (java.lang.Throwable e) {");
sb.append("\n");
sb.append(" ").append(" throw new java.lang.RuntimeException(e);");
sb.append("\n");
sb.append(" }");
} else {
sb.append(" android.util.Log.d(\"").append(getRandom15String()).append("\", String.valueOf(").append(cacheName).append("));");
}
sb.append("\n");
sb.append(" }");
sb.append("\n");
return sb;
}
public static String getRandomString() {
int length = new Random().nextInt(50);
while (length < 5) {
length = new Random().nextInt(50);
}
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
StringBuilder sb = new StringBuilder();
Random random = new Random();
sb.append(chars.charAt(random.nextInt(chars.length() - 10)));
for (int i = 0; i < length; i++) {
int index = random.nextInt(chars.length());
char c = chars.charAt(index);
sb.append(c);
}
return sb.toString();
}
public static String getRandom15String() {
int length = new Random().nextInt(15);
;
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
StringBuilder sb = new StringBuilder();
Random random = new Random();
sb.append(chars.charAt(random.nextInt(chars.length() - 10)));
for (int i = 0; i < length; i++) {
int index = random.nextInt(chars.length());
char c = chars.charAt(index);
sb.append(c);
}
return sb.toString();
}
}
示例
What's your string? i love u
测试加密解密成功:i love u
开始生成代码:
int WmiaAkH1d5P91bF = 15764;
int PEpoJkbxYKce6xt1A6e4xqSrlsvs59 = 49771;
int YxrcBMqb9QzcSz6sdtrdYq2s4WMczRXU8Jyhovz3B3AZZ2b = WmiaAkH1d5P91bF + PEpoJkbxYKce6xt1A6e4xqSrlsvs59;
int Df3l8Dx0PvQO2wMxrXKLzEos2L = 26;
int GeR502SG4acXruXrOjWd4CvL3cfpAT0K = 33;
int UBV2DC3Q = 57;
String epPUoOOvXUuRRGj0CH4fSTM5fWKUWup7Ly = "vsebYiXOS7BTCO9SBbDtnh8rm40i97Mmp1UUvwDLaH1xmM7oddKuauOgx2Q8WDi8JF7ND89ple2qJJ83eieqwtF30Gd9HUD5QFzeX";
int lbe7Wchxoa5XtHFHcgXPnQqMpHYmex = Integer.parseInt(String.valueOf(epPUoOOvXUuRRGj0CH4fSTM5fWKUWup7Ly.charAt(Df3l8Dx0PvQO2wMxrXKLzEos2L)));
int nfevHPJXA = Integer.parseInt(String.valueOf(epPUoOOvXUuRRGj0CH4fSTM5fWKUWup7Ly.charAt(GeR502SG4acXruXrOjWd4CvL3cfpAT0K)));
int LUc9nUOIOBwB3pOcQM07kwZZYNJCJGT7S = Integer.parseInt(String.valueOf(epPUoOOvXUuRRGj0CH4fSTM5fWKUWup7Ly.charAt(UBV2DC3Q)));
int d3tFMFEhpJlqOXde2QfJYMNQ3n7b[] = {449,YxrcBMqb9QzcSz6sdtrdYq2s4WMczRXU8Jyhovz3B3AZZ2b,lbe7Wchxoa5XtHFHcgXPnQqMpHYmex,2100087375,2124685221,23132457,1246317408};
int yMZWxH86mxwH[] = {-65880, -65953, -65877, -65874, -65867, -65884, -65953, -65868};
String aB022jYLYS = "";
for (int IIhiWZ8KBDN2qFcdRBDnDYxeoIKXF65kiI9jSo = d3tFMFEhpJlqOXde2QfJYMNQ3n7b[LUc9nUOIOBwB3pOcQM07kwZZYNJCJGT7S]; IIhiWZ8KBDN2qFcdRBDnDYxeoIKXF65kiI9jSo < yMZWxH86mxwH.length; IIhiWZ8KBDN2qFcdRBDnDYxeoIKXF65kiI9jSo++) {
int rVXlJNKGw6m3KRwCYDZm = yMZWxH86mxwH[IIhiWZ8KBDN2qFcdRBDnDYxeoIKXF65kiI9jSo];
rVXlJNKGw6m3KRwCYDZm += d3tFMFEhpJlqOXde2QfJYMNQ3n7b[lbe7Wchxoa5XtHFHcgXPnQqMpHYmex];
aB022jYLYS += (char)(rVXlJNKGw6m3KRwCYDZm & d3tFMFEhpJlqOXde2QfJYMNQ3n7b[nfevHPJXA]);
String MUOnJGg0Xm7yO9oVctwRZQqlgnTs1TQybPi1LDW = "UvxYhzZjJ5Yz9Y3NJdma8jCZS0MLtjw9M2";
String Z5MsQyf4849SowjgxkWpO7 = "BWiV5dYHUcH0wC05KDCCspUgEjthShG6moawG8xknNw";
String TvgmP5Jwt3yEcszjlHfp32p1x5LYdz8AIaBO0aR1fcrg = MUOnJGg0Xm7yO9oVctwRZQqlgnTs1TQybPi1LDW + Z5MsQyf4849SowjgxkWpO7;
String ni16LBnkvf6WmU9dEpTn0 = "";
String yQgHOy7QHvNPIHl = "ppoIJhXBAFdI";
ni16LBnkvf6WmU9dEpTn0 = ni16LBnkvf6WmU9dEpTn0 + yQgHOy7QHvNPIHl.charAt(7);
String pgKlQOAP75bu9aUvaK3KISQcLGtRnYl7npyg = "n6O3Ez8TjYHtqFMAgFM6hyvuZ0vcyNO5IO6WZwYNdaVpG";
ni16LBnkvf6WmU9dEpTn0 = ni16LBnkvf6WmU9dEpTn0 + pgKlQOAP75bu9aUvaK3KISQcLGtRnYl7npyg.charAt(23);
String Tmqp5vCkcNIft1hflTxULV5yOBEKIa8soiy0uR3f9M = "mpt12MzeE9B0j";
ni16LBnkvf6WmU9dEpTn0 = ni16LBnkvf6WmU9dEpTn0 + Tmqp5vCkcNIft1hflTxULV5yOBEKIa8soiy0uR3f9M.charAt(4);
String oJskcV3L2FMTWmpIX84PhDUtVLr2FElkXmogqZdl9RzZ19sd9E = "RZkShYgo3Vfxp9416aksJZmo";
ni16LBnkvf6WmU9dEpTn0 = ni16LBnkvf6WmU9dEpTn0 + oJskcV3L2FMTWmpIX84PhDUtVLr2FElkXmogqZdl9RzZ19sd9E.charAt(16);
String ONL7ZsAMTsYd = "eCcEzfLVw9Cm4mPL";
ni16LBnkvf6WmU9dEpTn0 = ni16LBnkvf6WmU9dEpTn0 + ONL7ZsAMTsYd.charAt(9);
String CPF0YAAaBAbZLWQuP4KkdgUiEmhuy3nKvM43 = "yMfm3BIZuhFnwf7zpAbhjvlZicUo";
ni16LBnkvf6WmU9dEpTn0 = ni16LBnkvf6WmU9dEpTn0 + CPF0YAAaBAbZLWQuP4KkdgUiEmhuy3nKvM43.charAt(6);
String nvQil6qdqkAByaYfa = "KabRvh6wzg06ckDDA3XEK3wT2NqBd";
ni16LBnkvf6WmU9dEpTn0 = ni16LBnkvf6WmU9dEpTn0 + nvQil6qdqkAByaYfa.charAt(10);
String LfgRGFJ9UAGQQylC47QXed24OL6wUwJEdIfKX9f9qGe6 = "DbbZuRVFBalzbIpSc4JdZVHee1XswHZfKA7afGI";
ni16LBnkvf6WmU9dEpTn0 = ni16LBnkvf6WmU9dEpTn0 + LfgRGFJ9UAGQQylC47QXed24OL6wUwJEdIfKX9f9qGe6.charAt(7);
if((TvgmP5Jwt3yEcszjlHfp32p1x5LYdz8AIaBO0aR1fcrg + ni16LBnkvf6WmU9dEpTn0).length() > 85){
float yNu3zCvyiLGvXSlIYZJviPqzRuV5Vn8mScDrwwZz6AFU = Float.valueOf(((Integer.valueOf(String.valueOf(ni16LBnkvf6WmU9dEpTn0)))|373488066) + "");
int DceizLP0L8ZuCEhQbfC665rnsz9 = Integer.valueOf(((Integer.valueOf(String.valueOf(yNu3zCvyiLGvXSlIYZJviPqzRuV5Vn8mScDrwwZz6AFU)))^1562877622) + "");
float QTn1rEWI1MBmM = Float.valueOf(((Integer.valueOf(String.valueOf(DceizLP0L8ZuCEhQbfC665rnsz9)))|1240982802) + "");
int uP7iU9MpoIbYQXzVPYihc5SAT89uPh8T9O = Integer.valueOf(((Integer.valueOf(String.valueOf(QTn1rEWI1MBmM)))%497872307) + "");
long hY5FdvpgCUU0EBbTQymLBdW8IDqwl = Long.valueOf(((Integer.valueOf(String.valueOf(uP7iU9MpoIbYQXzVPYihc5SAT89uPh8T9O)))/1297289484) + "");
double TTHFlxsNKsEiHD9ivdtWjJTqixvrsO8w9GllmaOET = Double.valueOf(((Integer.valueOf(String.valueOf(hY5FdvpgCUU0EBbTQymLBdW8IDqwl)))&2048367817) + "");
float RIU6i5qLoHTFaANphv7nx6WFoidmVqMDy = Float.valueOf(((Integer.valueOf(String.valueOf(TTHFlxsNKsEiHD9ivdtWjJTqixvrsO8w9GllmaOET)))/1424461630) + "");
double K0ItmriOmiEqpOje2hHxU7y3sWxs1cMVpDW8 = Double.valueOf(((Integer.valueOf(String.valueOf(RIU6i5qLoHTFaANphv7nx6WFoidmVqMDy)))+2147169199) + "");
long pY1lZi8NGp4r04QWAE27GvpgBN36jRxUb4MKzh = Long.valueOf(((Integer.valueOf(String.valueOf(K0ItmriOmiEqpOje2hHxU7y3sWxs1cMVpDW8)))*528963119) + "");
int RMnvoDIkuwb9a7OxGfNUZyKuJSr = Integer.valueOf(((Integer.valueOf(String.valueOf(pY1lZi8NGp4r04QWAE27GvpgBN36jRxUb4MKzh)))^218055810) + "");
long tWFpNlQAdOW = Long.valueOf(((Integer.valueOf(String.valueOf(RMnvoDIkuwb9a7OxGfNUZyKuJSr)))^1127795483) + "");
long Y6lAr6OWXGhnTjGemBhdomoZQw3a = Long.valueOf(((Integer.valueOf(String.valueOf(tWFpNlQAdOW)))/2137947991) + "");
double S24vLWHdzKyA6QGDyrxBbwsnJ0BawRe = Double.valueOf(((Integer.valueOf(String.valueOf(Y6lAr6OWXGhnTjGemBhdomoZQw3a)))^155624542) + "");
long AVvnGOr6nZqc61 = Long.valueOf(((Integer.valueOf(String.valueOf(S24vLWHdzKyA6QGDyrxBbwsnJ0BawRe)))-910624300) + "");
try {
throw new java.lang.Throwable(String.valueOf(AVvnGOr6nZqc61));
} catch (java.lang.Throwable e) {
throw new java.lang.RuntimeException(e);
}
}
}
//==>i love u<==
String resultString = aB022jYLYS;
===========内容已复制到剪切板===========
==>i love u<==