Hallo zusammen,
ich habe ein kleines Problem: Ich muss 2 Möglichkeiten finden, einen String zu verschlüsseln. Dies darf ich leider nicht mit den vorhandenen Bibliotheken machen. Dafür werden keine Anforderungen an die tatsächliche Sicherheit gestellt. Ich hab mir nach einiger Recherche den Caesar Sypher ausgesucht. Der macht bei mir auch was er soll... jedenfalls so großteilig... manchmal kommen völlig wirre Ergebnisse. Wo liegt der Fehler in meinem Code? (die Variable key gibt dabei die Verschiebung an, also bei 3 wird aus a ein d usw., die Variable value ist für den String reserviert).
Verschlüsselung:
Entschlüsselung:
Desweiteren brauche ich eine einfache Verschlüsselung mit Passwort. Ich habe schon mit XOR rumgespielt, aber da kriege ich die toString() Funktion am Ende nicht hin. Ich brauche im Prinzip nur einen Ver- und Entschlüsselungs-Algorhythmus, der irgendwie ein Passwort mit einbindet. Jemand ne Idee?
Im Vorraus schon mal vielen Dank
Grüsse, Bongi
P.S: Noch mal zur Klarheit: Der Nutzer soll einen String eingeben können, erhält daraufhin wieder einen String zurück welchen er wieder eingeben kann und quasi "zurückübersetzen" lassen kann... im 2. Fall halt mit einem einfach Passwort.
ich habe ein kleines Problem: Ich muss 2 Möglichkeiten finden, einen String zu verschlüsseln. Dies darf ich leider nicht mit den vorhandenen Bibliotheken machen. Dafür werden keine Anforderungen an die tatsächliche Sicherheit gestellt. Ich hab mir nach einiger Recherche den Caesar Sypher ausgesucht. Der macht bei mir auch was er soll... jedenfalls so großteilig... manchmal kommen völlig wirre Ergebnisse. Wo liegt der Fehler in meinem Code? (die Variable key gibt dabei die Verschiebung an, also bei 3 wird aus a ein d usw., die Variable value ist für den String reserviert).
Verschlüsselung:
Code:
public String enCrypt(String value, int key) {
String edited = value;
StringBuffer ergebnis = new StringBuffer();
for( int i = 0; i < edited.length(); i++ )
{
int c = edited.charAt( i );
if ( (c >= 'A') && (c <= 'z') ) {
c += key;
if( c > 'z' )
c = 'a' + c % 'z' -1;
if( (c > 'Z') && (c < 'a') )
c = 'A' + c % 'Z' - 1;
}
ergebnis.append( (char) c );
}
return ergebnis.toString();
}
Entschlüsselung:
Code:
public String deCrypt(String value, int key) {
String edited = value;
StringBuffer ergebnis = new StringBuffer();
for( int i = 0; i < edited.length(); i++ )
{
int c = edited.charAt( i );
if ( (c >= 'A') && (c <= 'z') ) {
c -= key;
if( (c < 'a') && (c > 'Z') )
c = 'a' + ('z' - c % 'a') - 1;
if( c < 'A' )
c = 'A' + ('Z' - c % 'A') - 1;
}
ergebnis.append( (char) c );
}
return ergebnis.toString();
}
Desweiteren brauche ich eine einfache Verschlüsselung mit Passwort. Ich habe schon mit XOR rumgespielt, aber da kriege ich die toString() Funktion am Ende nicht hin. Ich brauche im Prinzip nur einen Ver- und Entschlüsselungs-Algorhythmus, der irgendwie ein Passwort mit einbindet. Jemand ne Idee?
Im Vorraus schon mal vielen Dank
Grüsse, Bongi
P.S: Noch mal zur Klarheit: Der Nutzer soll einen String eingeben können, erhält daraufhin wieder einen String zurück welchen er wieder eingeben kann und quasi "zurückübersetzen" lassen kann... im 2. Fall halt mit einem einfach Passwort.
Zuletzt bearbeitet: