Hallöchen.
ich möchte gerne eine kleine Verschlüsselung visualisieren.
Sieht auch schon recht gut aus, funktioniert leider aber noch nicht ganz so, wie ich will.
Ich möchte, dass diese Methode um einen String mit einem Passwort zu "verschlüsseln" bzw. "entschlüsseln" zuverlässig funktioniert, was allerdings nicht der Fall ist.
Wie wird die Methode genuzt?
Eigendlich Relativ einfach. Man hat ein String, der "verschlüsselt" werden soll, gibt an, ob Ver- oder Entschlüsselt werden soll (true bzw false) und gibt noch ein Passwort an:
Wozu benutze ich diese Methode?
Ich bin derzeit dabei ein Chat zu entwickeln und möchte nicht, dass die "Kommunikation" zwischen Client & Server in Klartext geschieht.
Bei einem handshake des Clienten mit dem Server generiert der Chatserver ein Passwort.
Dieses Passwort ist solange gültig, bis der Client sich vom Server aus irgendwelchen Gründen verabschiedet (Beispielsweise timeout oder beenden des Clienten). Das Passwort wird verwendet um die Kommunikation zwischen Client & Server ein wenig zu sichern (Siehe obige Methoden).
Leider gibt es nun folgendes Problem: Nicht alle Zeichen werden wieder richtig "umgewandelt". Es werden ja schließlich mit der obigen Methode nur die Zeichen "versezt" sodass diese unleserlich erscheinen.
Hier gebe ich mal kurz ein Beispiel:
Wie kann ich die obigen Methoden so optimieren, dass auch tatsächlich immer das selbe ergebnis rauskommt? Ich möchte halt, wenn ich "Hello World" versende und dies mit einem Passwort verschlüsselt wird auch bei der entschlüsselung wieder "Hello World" herauskommt.
Hat jemand einen Tipp/Ideen und kann mir ggf. bei den Problem behilflich sein?
ich möchte gerne eine kleine Verschlüsselung visualisieren.
Sieht auch schon recht gut aus, funktioniert leider aber noch nicht ganz so, wie ich will.
Ich möchte, dass diese Methode um einen String mit einem Passwort zu "verschlüsseln" bzw. "entschlüsseln" zuverlässig funktioniert, was allerdings nicht der Fall ist.
Java:
private static int CryptKey(int count, String hash) {
int size = hash.length();
count = count % size;
char[] sKeys = hash.toCharArray();
return sKeys[count];
}
public static String CryptE(boolean method, String string, String hash) {
String returned = "";
int char_new = 0, count = 0;
for(int i = 0; i < string.length(); i++) {
if(method) {
char_new = string.charAt(i) + CryptKey(count, hash);
} else {
char_new = string.charAt(i) - CryptKey(count, hash);
}
char_new = char_new % 256;
if(char_new < 0) { char_new += 256; }
returned += new Character((char) char_new);
count += 1;
}
return returned;
}
Wie wird die Methode genuzt?
Eigendlich Relativ einfach. Man hat ein String, der "verschlüsselt" werden soll, gibt an, ob Ver- oder Entschlüsselt werden soll (true bzw false) und gibt noch ein Passwort an:
Java:
System.out.println("\"Hello World\" verschlüsselt: " + CryptE(true, "Hello World", "mein Passwort"));
Wozu benutze ich diese Methode?
Ich bin derzeit dabei ein Chat zu entwickeln und möchte nicht, dass die "Kommunikation" zwischen Client & Server in Klartext geschieht.
Bei einem handshake des Clienten mit dem Server generiert der Chatserver ein Passwort.
Dieses Passwort ist solange gültig, bis der Client sich vom Server aus irgendwelchen Gründen verabschiedet (Beispielsweise timeout oder beenden des Clienten). Das Passwort wird verwendet um die Kommunikation zwischen Client & Server ein wenig zu sichern (Siehe obige Methoden).
Leider gibt es nun folgendes Problem: Nicht alle Zeichen werden wieder richtig "umgewandelt". Es werden ja schließlich mit der obigen Methode nur die Zeichen "versezt" sodass diese unleserlich erscheinen.
Hier gebe ich mal kurz ein Beispiel:
Passwort: v2fnauQc4y
Versendet: Hello
Verschlüsselt: ¾—ÒÚÐ
Empfangen & Entschlüsselt: Hllo
Versendet: juhuuu
Verschlüsselt: à§ÎãÖê
Empfangen & Entschlüsselt: juhuuu
Versendet: Hello World!
Verschlüsselt: ¾—ÒÚЕ¨Ò¦åÚS
Empfangen & Entschlüsselt: HlloÊWorld!
Versendet: e
Verschlüsselt: Û
Empfangen & Entschlüsselt: e
Wie kann ich die obigen Methoden so optimieren, dass auch tatsächlich immer das selbe ergebnis rauskommt? Ich möchte halt, wenn ich "Hello World" versende und dies mit einem Passwort verschlüsselt wird auch bei der entschlüsselung wieder "Hello World" herauskommt.
Hat jemand einen Tipp/Ideen und kann mir ggf. bei den Problem behilflich sein?