Ok danke ich hab es dann mal so versucht in Java
Code:
public static String encode(String str, String pw)
{
byte[] base64String = Base64.encode(str.getBytes(), Base64.DEFAULT);
RC4 rc4 = new RC4(pw);
byte[] rc4Base64String = rc4.rc4(new String(base64String));
System.out.println(new String(rc4Base64String));
return new String(rc4Base64String);
}
public static String decode(String str, String pw)
{
RC4 rc4 = new RC4(pw);
byte[] base64String = rc4.rc4(str);
byte[] normalString = Base64.decode(base64String, Base64.DEFAULT);
System.out.println(new String(normalString));
return new String(normalString);
}
public static String decode2(String str)
{
byte[] normalString = Base64.decode(str.getBytes(), Base64.DEFAULT);
System.out.println(new String(normalString));
return new String(normalString);
}
und diese RC4 Klasse verwendet:
Allerdings wenn ich den String nur mit Base64 encode kommt der gleiche Wert raus als wenn ich nochmal mit RC4 drüber gehe.
So rufe ich die Funktionen auf:
Code:
String s = Crypt.encode("'\"Test", "ddshhgda");
Crypt.decode(s, "ddshhgda");
Crypt.decode2(s);
Das ist die Ausgabe
Code:
JyJUZXN0
'"Test
'"Test
Allerdings dürfte das letzte ja nicht den richtigen Wert ausgeben da das ganze ja nochmal mit R4 verschlüsselt ist die hier ja nicht rückgängig gemacht wird.
Gruß
Yissu