mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
155 lines
6.2 KiB
Java
155 lines
6.2 KiB
Java
package com.hbm.util;
|
|
|
|
import com.google.common.collect.Sets;
|
|
import com.hbm.config.GeneralConfig;
|
|
import com.hbm.main.MainRegistry;
|
|
import cpw.mods.fml.relauncher.ReflectionHelper;
|
|
|
|
import java.lang.reflect.Field;
|
|
import java.security.MessageDigest;
|
|
import java.security.NoSuchAlgorithmException;
|
|
import java.util.Base64;
|
|
import java.util.HashSet;
|
|
import java.util.Random;
|
|
import java.util.Set;
|
|
|
|
/**
|
|
* Handles anything regarding hashes, base64 encoding, etc. Shady looking stuff, that is
|
|
* @author hbm
|
|
*
|
|
*/
|
|
public class ShadyUtil {
|
|
|
|
//this is a list of UUIDs used for various things, primarily for accessories.
|
|
//for a comprehensive list, check RenderAccessoryUtility.java
|
|
public static String HbMinecraft = "192af5d7-ed0f-48d8-bd89-9d41af8524f8";
|
|
public static String LPkukin = "937c9804-e11f-4ad2-a5b1-42e62ac73077";
|
|
public static String Dafnik = "3af1c262-61c0-4b12-a4cb-424cc3a9c8c0";
|
|
public static String a20 = "4729b498-a81c-42fd-8acd-20d6d9f759e0";
|
|
public static String LordVertice = "a41df45e-13d8-4677-9398-090d3882b74f";
|
|
public static String CodeRed_ = "912ec334-e920-4dd7-8338-4d9b2d42e0a1";
|
|
public static String dxmaster769 = "62c168b2-d11d-4dbf-9168-c6cea3dcb20e";
|
|
public static String Dr_Nostalgia = "e82684a7-30f1-44d2-ab37-41b342be1bbd";
|
|
public static String Samino2 = "87c3960a-4332-46a0-a929-ef2a488d1cda";
|
|
public static String Hoboy03new = "d7f29d9c-5103-4f6f-88e1-2632ff95973f";
|
|
public static String Dragon59MC = "dc23a304-0f84-4e2d-b47d-84c8d3bfbcdb";
|
|
public static String Steelcourage = "ac49720b-4a9a-4459-a26f-bee92160287a";
|
|
public static String ZippySqrl = "03c20435-a229-489a-a1a1-671b803f7017";
|
|
public static String Schrabby = "3a4a1944-5154-4e67-b80a-b6561e8630b7";
|
|
public static String SweatySwiggs = "5544aa30-b305-4362-b2c1-67349bb499d5";
|
|
public static String Drillgon = "41ebd03f-7a12-42f3-b037-0caa4d6f235b";
|
|
public static String Doctor17 = "e4ab1199-1c22-4f82-a516-c3238bc2d0d1";
|
|
public static String Doctor17PH = "4d0477d7-58da-41a9-a945-e93df8601c5a";
|
|
public static String ShimmeringBlaze = "061bc566-ec74-4307-9614-ac3a70d2ef38";
|
|
public static String FifeMiner = "37e5eb63-b9a2-4735-9007-1c77d703daa3";
|
|
public static String lag_add = "259785a0-20e9-4c63-9286-ac2f93ff528f";
|
|
public static String Pu_238 = "c95fdfd3-bea7-4255-a44b-d21bc3df95e3";
|
|
public static String Tankish = "609268ad-5b34-49c2-abba-a9d83229af03";
|
|
public static String FrizzleFrazzle = "fc4cc2ee-12e8-4097-b26a-1c6cb1b96531";
|
|
public static String the_NCR = "28ae585f-4431-4491-9ce8-3def6126e3c6";
|
|
public static String Barnaby99_x = "b04cf173-cff0-4acd-aa19-3d835224b43d";
|
|
public static String Ma118 = "1121cb7a-8773-491f-8e2b-221290c93d81";
|
|
public static String Adam29Adam29 = "bbae7bfa-0eba-40ac-a0dd-f3b715e73e61";
|
|
public static String Alcater = "0b399a4a-8545-45a1-be3d-ece70d7d48e9";
|
|
public static String ege444 = "42ee978c-442a-4cd8-95b6-29e469b6df10";
|
|
public static String LePeeperSauvage = "433c2bb7-018c-4d51-acfe-27f907432b5e";
|
|
|
|
public static final Set<String> hashes = new HashSet();
|
|
static {
|
|
hashes.add("41de5c372b0589bbdb80571e87efa95ea9e34b0d74c6005b8eab495b7afd9994");
|
|
hashes.add("31da6223a100ed348ceb3254ceab67c9cc102cb2a04ac24de0df3ef3479b1036");
|
|
}
|
|
|
|
public static final int c = 0x3d;
|
|
public static String initializer = "Ur bp7mN-@UFZKXBx9N[/>M'k\\7\\9m3b";
|
|
public static String signature = "dYPq\\YzrNpfn[ZDxdk7PS2jhTY72cZT7SoH|\\WL3dIznfC";
|
|
public static String mask = "E#?V,%l!nb4 ik_wJ@(&k4o>Wq";
|
|
public static String checksum = "dpXt\\Xnr\\Yzm";
|
|
public static String testCase = "dYPq\\YzrNm3FUH;P[ZTq";
|
|
public static String testValue = "WGm?";
|
|
public static String smTest1 = "hgwS";
|
|
public static String smTest2 = "8Sfw";
|
|
public static String smTest3 = "j11D";
|
|
public static String smTest4 = "s783";
|
|
|
|
public static Set<String> contributors = Sets.newHashSet(new String[] {
|
|
"06ab7c03-55ce-43f8-9d3c-2850e3c652de", //mustang_rudolf
|
|
"5bf069bc-5b46-4179-aafe-35c0a07dee8b", //JMF781
|
|
"ccd9aa1c-26b9-4dde-8f37-b96f8d99de22", //kakseao
|
|
});
|
|
|
|
// simple cryptographic utils
|
|
public static String encode(String msg) { return Base64.getEncoder().encodeToString(msg.getBytes()); }
|
|
public static String decode(String msg) { return new String(Base64.getDecoder().decode(msg)); }
|
|
|
|
public static String offset(String msg, int o) {
|
|
byte[] bytes = msg.getBytes();
|
|
for(int i = 0; i < bytes.length; i++) {
|
|
bytes[i] += o;
|
|
}
|
|
return new String(bytes);
|
|
}
|
|
|
|
/** Encryptor for the h-cat answer strings */
|
|
public static String smoosh(String s1, String s2, String s3, String s4) {
|
|
|
|
Random rand = new Random();
|
|
String s = "";
|
|
|
|
byte[] b1 = s1.getBytes();
|
|
byte[] b2 = s2.getBytes();
|
|
byte[] b3 = s3.getBytes();
|
|
byte[] b4 = s4.getBytes();
|
|
|
|
if(b1.length == 0 || b2.length == 0 || b3.length == 0 || b4.length == 0) return "";
|
|
|
|
s += s1;
|
|
rand.setSeed(b1[0]);
|
|
s += rand.nextInt(0xffffff);
|
|
s += s2;
|
|
rand.setSeed(rand.nextInt(0xffffff) + b2[0]);
|
|
rand.setSeed(b2[0]);
|
|
s += rand.nextInt(0xffffff);
|
|
s += s3;
|
|
rand.setSeed(rand.nextInt(0xffffff) + b3[0]);
|
|
rand.setSeed(b3[0]);
|
|
s += rand.nextInt(0xffffff);
|
|
s += s4;
|
|
rand.setSeed(rand.nextInt(0xffffff) + b4[0]);
|
|
rand.setSeed(b4[0]);
|
|
s += rand.nextInt(0xffffff);
|
|
return getHash(s);
|
|
}
|
|
|
|
/** Simple SHA256 call */
|
|
public static String getHash(String inp) {
|
|
try {
|
|
MessageDigest sha256 = MessageDigest.getInstance("SHA-256");
|
|
byte[] bytes = sha256.digest(inp.getBytes());
|
|
String str = "";
|
|
for(int b : bytes) str = str + Integer.toString((b & 0xFF) + 256, 16).substring(1);
|
|
return str;
|
|
} catch(NoSuchAlgorithmException e) { }
|
|
return "";
|
|
}
|
|
|
|
public static void test() {
|
|
if(!GeneralConfig.enableDebugMode) return; //only run in debug mode
|
|
|
|
//unit test for smooshing
|
|
MainRegistry.logger.debug(smoosh(smTest1, smTest2, smTest3, smTest4));
|
|
|
|
try {
|
|
Class test = Class.forName(decode(offset(signature, -2)));
|
|
Field field = ReflectionHelper.findField(test, decode(offset(checksum, -2)));
|
|
if(field != null) {
|
|
System.out.println("TEST SECTION START");
|
|
Class toLoad = Class.forName(decode(offset(testCase, -2)));
|
|
Field toRead = ReflectionHelper.findField(toLoad, decode(offset(testValue, -2)));
|
|
//ModEventHandler.reference = toRead;
|
|
System.out.println("TEST SECTION END");
|
|
}
|
|
} catch(Throwable e) { }
|
|
}
|
|
}
|