# Cäsar Verschlüsselung



## Spranta (14. März 2007)

Hallo

ich habe im Internet folgendes Script gefunden

```
public static String caesar( String s )
  {
    StringBuffer ergebnis = new StringBuffer();

    for( int i = 0; i < s.length(); i++ )
    {
      int c = s.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();
  }
  
  public static String decaesar( String s )
  {
    StringBuffer ergebnis = new StringBuffer();
    
    for( int i = 0; i < s.length(); i++ )
    {
      int c = s.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();
  }
```

Die Methode caesar funktioniert einwandfrei nur bei der decaesar ist der wurm drin. Ich finde da leider auch keine passende lösung wie ich das umsetzen bzw korregieren kann könnte mir da vielleicht einer helfen?

Gruß
Spranta


----------



## jeipack (15. März 2007)

Cäsar ist einfach ein Verschiebechiffre und so sollte es doch relativ einfach sein ihn zu debuggen?

Wikiartikel zum Cäsar

Am Wochenende werd ich mir das glaub ich mal anschauen. Interessiert mich nämlich selbst =)

Gruss


----------



## matdacat (16. März 2007)

Habs grad ausprobiert: die beiden Methoden funktionieren bestens. key - die Zahl, um wieviele Zeichen verschoben wird - muss allerdings noch definiert werden (bzw. würd ich sie den Methoden als Parameter übergeben).

Zum Testen:

```
public static void main(String[] args) {
		  String plain = "Ein Test";
		  String encrypted = caesar(plain);
		  String decrypted = decaesar(encrypted);
		  System.out.println("plain:     " + plain);
		  System.out.println("encrypted: " + encrypted);
		  System.out.println("decrypted: " + decrypted);		  	  
	  }
```


----------

