Methoden Reverse

LippertD

Mitglied
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 :)
 

temi

Top Contributor
Da tränen einem ja die Augen. :eek: Das ist ja ziemlich - schrecklich.

Was möchtest du genau mit dem Ausgangsstring machen? Vielleicht geht das ja einfacher.
 
M

Mart

Gast
Java:
public class sadf
{
public static void main(String[] args)
{
    System.out.println("bob".getBytes()[0]);
}
}
 
M

Mart

Gast
Java:
Encodes this String into a sequence of bytes using theplatform's default charset, storing the result into a new byte array.
The behavior of this method when this string cannot be encoded inthe default charset is unspecified. The java.nio.charset.CharsetEncoder class should be used when more controlover the encoding process is required.
 

temi

Top Contributor
Der Key kommt so verschlüsselt in einem QR-Code. Ich kann am Format bzw am Encoding leider nichts ändern. 🙈
Du hast den String "LabelKey" gegeben und damit möchtest du etwas machen.

Was möchtest du damit machen?

Ich glaube die wenigsten haben Lust sich durch den Code zu kämpfen, um herauszufinden, was da passiert.
 

LippertD

Mitglied
Du hast den String "LabelKey" gegeben und damit möchtest du etwas machen.

Was möchtest du damit machen?

Ich glaube die wenigsten haben Lust sich durch den Code zu kämpfen, um herauszufinden, was da passiert.
Das ist nur ein Beispiel wie es Encoded wird, gegeben ist im Live-Betrieb nur der „LabelKey in Hex“, daher ja meine Frage bezüglich des zurück kodierens.
 

Neue Themen


Oben