Hallo Zusammen, vll kann mir hier einer helfen. Ich hab eine Methode welche mir einen String in ein Byte[] umwandelt.
Kleines Beispiel:
[CODE lang="java" title="Klasse"]public class Main {
private static String LabelKey = "568NLH5HTTETTNEZ04QWJREQBY";
public static void main(String[] args) {
System.out.println("LabelKey in HEX: " + makeHexStringFromByteArray(makeByteArrayFromKey(LabelKey)));
}
private static byte[] makeByteArrayFromKey(String str) {
char[] CharArray = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'W', 'X', 'Y', 'Z'};
byte[] bArr = new byte[16];
int length = str.length() - 1;
int i = 15;
int i2 = 0;
int i3 = 0;
while (length >= 0) {
int i4 = 0;
while (true) {
char[] cArr = CharArray;
if (i4 >= cArr.length) {
break;
} else if (cArr[i4] == str.charAt(length)) {
i2 |= i4 << i3;
break;
} else {
i4++;
}
}
i3 += 5;
length--;
while (i3 > 8 && i >= 0) {
bArr = (byte) i2;
i2 >>= 8;
i3 -= 8;
i--;
}
}
return bArr;
}
public static String makeHexStringFromByteArray(byte[] bArr) {
StringBuilder sb = new StringBuilder();
int length = bArr.length;
for (int i = 0; i < length; i++) {
sb.append(String.format("%02X", new Object[]{Byte.valueOf(bArr)}));
}
return sb.toString();
}
}
[/CODE]
[CODE lang="java" title="Ergebnis"]LabelKey in HEX: A6456702C35A6EB556FC04BF2386DD7E[/CODE]
So nun zu meinem Problem, ich bräuchte eine Methode die das ganze umgekehrt macht
A6456702C35A6EB556FC04BF2386DD7E -> 568NLH5HTTETTNEZ04QWJREQBY
Evtl. hat hier ja jemand eine Idee? Ich glaube es ist aufgrund des |= Operators nicht möglich aber bin mir nicht sicher...
Bin für jede Hilfe dankbar
Kleines Beispiel:
[CODE lang="java" title="Klasse"]public class Main {
private static String LabelKey = "568NLH5HTTETTNEZ04QWJREQBY";
public static void main(String[] args) {
System.out.println("LabelKey in HEX: " + makeHexStringFromByteArray(makeByteArrayFromKey(LabelKey)));
}
private static byte[] makeByteArrayFromKey(String str) {
char[] CharArray = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'W', 'X', 'Y', 'Z'};
byte[] bArr = new byte[16];
int length = str.length() - 1;
int i = 15;
int i2 = 0;
int i3 = 0;
while (length >= 0) {
int i4 = 0;
while (true) {
char[] cArr = CharArray;
if (i4 >= cArr.length) {
break;
} else if (cArr[i4] == str.charAt(length)) {
i2 |= i4 << i3;
break;
} else {
i4++;
}
}
i3 += 5;
length--;
while (i3 > 8 && i >= 0) {
bArr = (byte) i2;
i2 >>= 8;
i3 -= 8;
i--;
}
}
return bArr;
}
public static String makeHexStringFromByteArray(byte[] bArr) {
StringBuilder sb = new StringBuilder();
int length = bArr.length;
for (int i = 0; i < length; i++) {
sb.append(String.format("%02X", new Object[]{Byte.valueOf(bArr)}));
}
return sb.toString();
}
}
[/CODE]
[CODE lang="java" title="Ergebnis"]LabelKey in HEX: A6456702C35A6EB556FC04BF2386DD7E[/CODE]
So nun zu meinem Problem, ich bräuchte eine Methode die das ganze umgekehrt macht
A6456702C35A6EB556FC04BF2386DD7E -> 568NLH5HTTETTNEZ04QWJREQBY
Evtl. hat hier ja jemand eine Idee? Ich glaube es ist aufgrund des |= Operators nicht möglich aber bin mir nicht sicher...
Bin für jede Hilfe dankbar