Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Verschlüsslungsverfahren (http://www.informatikerboard.de/board/thread.php?threadid=2952)


Geschrieben von steinerxd am 17.04.2016 um 10:14:

  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



Geschrieben von ed209 am 17.04.2016 um 11:37:

 

Womit genau hast Du Probleme?



Geschrieben von steinerxd am 17.04.2016 um 14:17:

 

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 :/



Geschrieben von eulerscheZahl am 17.04.2016 um 14:22:

 

Jeder Großbuchstabe wird durch den entsprechenden Kleinbuchstaben ersetzt.
Aus "Max Musterman" wird "max musterman"



Geschrieben von steinerxd am 17.04.2016 um 14:28:

 

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 ??



Geschrieben von eulerscheZahl am 17.04.2016 um 20:24:

 

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.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH