lundi 16 mars 2015

Verständnisproblem beim Vigenere-Verfahren

Guten Tag,

wir machen im Unterricht gerade das Vigenere-Verfahren.

Um es besser zu verstehen, habe ich mir im Internet ein paar fertige Programmcodes angeschaut.

Dabei bin ich auf einen Code gestoßen, bei dem ich eine Zeile nicht ganz nachvollziehen kann:




Java Code:






  1. static String verschlüsseln(String text, String key) { //Verschlüsseln



  2. String neuertext = "";



  3. text = text.toUpperCase(); //Umwandlung in Großbuchstaben



  4. for (int i = 0, j = 0; i < text.length(); i = i+1) {



  5. char buchstabe = text.charAt(i);



  6. if (buchstabe < 'A' || buchstabe > 'Z');



  7. neuertext += (char)((buchstabe + key.charAt(j) - 2 * 'A') % 26 + 'A') // welche funktion hat diese zeile? ..... += ist eine Additionszuweisung → alles wird direkt auf neuertext hinzugerechnet



  8. j = ++j % key.length(); //% führt Division aus, nur der Restwert wird geliefert



  9. }



  10. return neuertext;



  11. }









Was genau bewirkt bei dieser Methode die Zeile, in der buchstabe mit key.charAt(j) und den A's addiert wird?

Warum wird in der vorletzten Zeile ++j durch die Schlüssellänge key.length() geteilt?



Danke im Vorraus :)





Verständnisproblem beim Vigenere-Verfahren

0 commentaires:

Enregistrer un commentaire