String anhand eines anderen Strings ver/entschlüsseln

12/30/2012 19:51 'ChuckNorris#1
Hallo Leute,

Da ich zwischen einer Android App (Java) und einem PHP-Skript Zeichenketten hin und her schicken muss suche ich eine Möglichkeit ein String anhand eines anderen Strings zu verschlüsseln und entschlüsseln. Diese Möglichkeite sollte sowohl in Java als auch in PHP funktionieren mir fällt allerdings keine Lösung ein.

Gruß
Yissu
12/30/2012 23:20 tolio#2
beim hin und her schicken zwischen verschiedenen sachen lohnt es sich meist den string erst in base64 zu konvertieren damit keine zeichen verloren gehen und anschließend einfach eine gänige verschlüsselungsmethode mit passwort zu nutzen, zb rc4 oder sonst was
12/31/2012 11:54 'ChuckNorris#3
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: [Only registered and activated users can see links. Click Here To Register...]

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
12/31/2012 12:54 tolio#4
hab letzt leider nicht die zeit dein code zu testen aber ich würde das ganze ca so testen:
string -> base64 -> rc4 -> rc4 -> base64 -> string
alles in einzelne funktionen und jedesmal das zwischenergebnis ausgeben lassen oder beim debuggen anzeigen lassen
so kannst du dich schritt für schritt weiterarbeiten bis am ende wieder das input rauskommt
12/31/2012 21:44 Flyff_Service#5
Quote:
Originally Posted by Yissu View Post
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
Besorg dir eine neue RC4 Klasse, deine scheint nämlich nicht das zu machen was sie sollte.