Java Vigenère Verschlüsselung

04/09/2013 20:46 Seriouz :3#1
Hi,

bin noch ziemlich am Anfang von Java.
Hab mir mal einen Quellcode zu einer Vigenère-Verschlüsselung angeguckt.

PHP Code:
public class Vigenere
{
    public 
void verarbeitung(String satzString schluessel)
    {
        
satz=satz.toUpperCase();
        
satz=satz.replaceAll("[^A-Z]","");
        
schluessel=schluessel.toUpperCase();
        
String verschluesselterSatz="";
        for (
int i=0j=0i<satz.length();i++,j++)
        {
            if (
j==schluessel.length())
            {
                
j=0;
            }
            
verschluesselterSatz=verschluesselterSatz+(char)((satz.charAt(i)+schluessel.charAt(j)-130)%26+'A');
        }
        
System.out.println(verschluesselterSatz);
    }

Habe dort noch ein wenig verändert/ergänzt.
Versteh's auch soweit, bis auf
PHP Code:
            verschluesselterSatz=verschluesselterSatz+(char)((satz.charAt(i)+schluessel.charAt(j)-130)%26+'A'); 
Primär gehts mir um "-130%26+'A'".
Das 'A' war vorher eine 65, habs für bessere Lesbarkeit ersetzt (-> richtig?)

Und bei "-130%26" setzt bei mir soziemlich aus.
130=2*65, also möglicherweise um die Zeichen direkt in den richtigen Bereich zu bekommen, aber was soll das "%26"?
Hab mal nach dem % gesucht, da gehts wohl um den Rest bei einer Rechnung.
Das bringt mir für mein Verständnis allerdings wenig bis gar nichts.


Kann mir jemand bitte diesen Teil erklären?


MfG
04/09/2013 21:35 Obilee#2
% = modulo ([Only registered and activated users can see links. Click Here To Register...])
Berechnet halt den Rest zwischen zwei Zahlen. Wird oft eingesetzt um Zahlen in einem bestimmten Bereich nur zu bekommen z.B. ZufälligeZahl%26 => bekommst nur Zahlen zwischen 0 und 25, ist hier auch der Fall.