2020-05-03 01:46:07 +02:00
|
|
|
package com.eu.habbo.util;
|
|
|
|
|
2020-05-28 22:21:31 +02:00
|
|
|
import java.util.Random;
|
|
|
|
import java.util.concurrent.ThreadLocalRandom;
|
|
|
|
|
2020-05-03 01:46:07 +02:00
|
|
|
public class HexUtils {
|
|
|
|
|
|
|
|
private static final char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
|
|
|
|
|
|
|
|
public static String toHex(byte[] bytes) {
|
|
|
|
char[] hexChars = new char[bytes.length * 2];
|
|
|
|
for (int j = 0; j < bytes.length; j++) {
|
|
|
|
int v = bytes[j] & 0xFF;
|
|
|
|
hexChars[j * 2] = HEX_ARRAY[v >>> 4];
|
|
|
|
hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
|
|
|
|
}
|
|
|
|
return new String(hexChars);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static byte[] toBytes(String hexString) {
|
|
|
|
int len = hexString.length();
|
|
|
|
byte[] data = new byte[len / 2];
|
|
|
|
for (int i = 0; i < len; i += 2) {
|
|
|
|
data[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4)
|
|
|
|
+ Character.digit(hexString.charAt(i+1), 16));
|
|
|
|
}
|
|
|
|
return data;
|
|
|
|
}
|
|
|
|
|
2020-05-28 22:21:31 +02:00
|
|
|
public static String getRandom(int length){
|
|
|
|
Random r = ThreadLocalRandom.current();
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
|
|
|
while(sb.length() < length){
|
|
|
|
sb.append(Integer.toHexString(r.nextInt()));
|
|
|
|
}
|
|
|
|
|
|
|
|
return sb.toString().substring(0, length);
|
|
|
|
}
|
|
|
|
|
2020-05-03 01:46:07 +02:00
|
|
|
}
|