Verschlüsslungsverfahren

Neue Frage »

Auf diesen Beitrag antworten »
steinerxd Verschlüsslungsverfahren

Meine Frage:
ich soll eine Text verschlüsseln mit dem ROT -K-verfahren

public static String rotK(String eingabetext, int k){
// Wandle die Eingabe in Kleinbuchstaben um.
String kleingeschrieben = eingabetext.toLowerCase();

// In diesem Array wird das Ergebnis der Verschlüsselung gespeichert.
char verschluesselt[] = new char[kleingeschrieben.length()];

// Fuer alle Zeichen im Eingabetext:
for(int i=0; i < kleingeschrieben.length(); i++){
// c ist das i-te Zeichen im Text
char c = kleingeschrieben.charAt(i);

// Verschluessele nur, wenn c ein Buchstabe ist
if(c >= 'a' && c <= 'z'){
// Verschiebe c um 7 Zeichen nach vorne. Wir rechnen
// modulo 26 um zyklisch zu verschieben.
c = (char) ((c - 'a' + k) % 26 + 'a');
}
verschluesselt[i] = c;
}

// Gib das Ergebnis als String zurueck.
return new String(verschluesselt);
}

// Vervollständigen Sie diese Methode für Aufgabenteil (b).
public static String entschluesseln(String eingabetext, int k){
return null;
}

public static void main(String[] args) {
// Namen der Gruppenmitglieder eintragen.";
String gruppenMitglieder = "Max Musterman,Lisa Musterman";

// Ergaenzen Sie hier den fehlenden Quellcode.
String ergebnis = rotK(gruppenMitglieder, 2);
System.out.println(ergebnis);
}
}

Meine Ideen:
ich weiß garnicht wie das funktioniert, wäre super wenn jemand mit mir das machen könnte oder erklärt wie ich das machen könnte
 
Auf diesen Beitrag antworten »
ed209

Womit genau hast Du Probleme?
Auf diesen Beitrag antworten »
steinerxd

da stehen ja diese Kommentare die ich ergänzen muss aber ich weiß nicht wie ich das anstellen soll.
Ich fang man von oben an zB erste Kommentar wir sollen das in Kleinbuchstaben umwandeln, da weiß nicht mal was die damit genau meinen :/
Auf diesen Beitrag antworten »
eulerscheZahl

Jeder Großbuchstabe wird durch den entsprechenden Kleinbuchstaben ersetzt.
Aus "Max Musterman" wird "max musterman"
 
Auf diesen Beitrag antworten »
steinerxd

Ahso das bezieht sich auf das programm ich dachte nur diesen Abschnitt
Und was bedeutet der vierte Abschnitt ?? Wie man man denn c verschlüsseln ??
Auf diesen Beitrag antworten »
eulerscheZahl

Meinst du das?
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
char c = kleingeschrieben.charAt(i);

// Verschluessele nur, wenn c ein Buchstabe ist
if(c >= 'a' && c <= 'z'){
    // Verschiebe c um 7 Zeichen nach vorne. Wir rechnen
    // modulo 26 um zyklisch zu verschieben.
    c = (char) ((c - 'a' + k) % 26 + 'a');
}
verschluesselt[i] = c;
}

Es wird das i-te Zeichen genommen. Wenn es größer oder gleich dem ASCII Wert von 'a' (also 97) ist und kleiner oder gleich dem von 'z', dann muss es sich um einen Kleinbuchstaben handeln.
c - 'a' bestimmt, um den wievielten Buchstaben im Alphabet es sich handelt (a=0, ..., z=25).
Darauf wird k addiert, also um soviel verschoben.
Wenn du einen großen Wert (z.B. 25 für z) hast, soll es beim Verschieben wieder von vorne (bei 0) losgehen. Daher %26.
Dann wird das 'a' wieder aufaddiert, um im ASCII Alphabet bei einem Buchstaben zu landen.
 
Neue Frage »
Antworten »


Verwandte Themen