Skip to content

Instantly share code, notes, and snippets.

@xenor
Created June 7, 2011 07:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save xenor/1011810 to your computer and use it in GitHub Desktop.
Save xenor/1011810 to your computer and use it in GitHub Desktop.
an easy-to-understand caesar-encryption program in java
package main;
import basis.*;
public class Caesar
{
// Liste (Array) mit allen Buchstaben:
public static char[] abc = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
public static int buchstabeZuZahl(char buchstabe) // Funktion, die buchstaben in zahlen umwandelt
{
for(int i = 0; i < 26; i = i + 1) // geht alle Buchstaben des Alphabets durch
{
if(abc[i] == buchstabe) // und wenn der Buchstabe der Gesuchte ist...
{
return i; // ... gib die Zahl zurück
}
}
System.exit(0); // Wenn der Buchstabe nicht gefunden wurde, beende das Programm
return 0;
}
public static char zahlZuBuchstabe(int b) // Funktion, die zahl in buchstabe umwandelt
{
return abc[b]; // gibt den Buchstaben an der Stelle b zurück
}
// *************************
// * BEGINN HAUPTPROGRAMM: *
// * ***********************
public static void main(String[] args)
{
String text = ""; // Der zu verschlüsselnde text
int verschiebung = 0; // um wieviel zeichen verschoben wird
System.out.println("Verschlüssle \"" + text + "\" mit einer Verschiebung von " + verschiebung);
// verschlüsselt den text
String ausgabe = verschlüssle(text,verschiebung);
System.out.println("Verschlüsselter Text: " + ausgabe);
// entschlüsselt durch eine verschiebung von -3 nach rechts, also 3 nach links
String ausgabe2 = verschlüssle(ausgabe,-3);
System.out.println("Entschlüsselter Text mit richtigem Schlüssel: " + ausgabe2);
// entschlüsselt durch eine verschiebung von -2 nach rechts, also 2 nach links
// da es der falsche schlüssel ist, kommt nicht der ausgangstext heraus
// keine erfolgreiche entschlüsslung
String ausgabe3 = verschlüssle(ausgabe,-2);
System.out.println("Entschlüsselter Text mit falschem Schlüssel: " + ausgabe3);
}
/*
* Funktion, die den text verschlüsselt oder entschlüsselt:
*
* public = kann von überall aus aufgerufen werden
* static = ist eine statische Funktion und kann damit direkt ohne Startklasse ausgeführt werden
* String = der rückgabetyp der Funktion, in diesem Fall ein Text
*/
public static String verschlüssle(String text, int verschiebung)
{
String ausgabe = ""; // der Text der nachher ausgegeben wird
for(int i = 0; i < text.length(); i = i + 1) // geht alle Zeichen durch
{
char buchstabe = text.charAt(i); // der momentane Buchstabe
int bs = buchstabeZuZahl( buchstabe ); // gibt die Zahl des Buchstabens zurück ( a = 1, b = 2, c = 3, usw )
int neueZahl = bs + verschiebung; // verschiebt den Buchstaben
char neuerBuchstabe = zahlZuBuchstabe( neueZahl ); // macht die Zahl wieder zum Buchstaben ( 1 = a, 2 = b, usw )
ausgabe = ausgabe + neuerBuchstabe; // fügt den verschlüsselten Buchstaben an den neuen Text an
}
return ausgabe; // gibt den ver-/entschlüsselten Text zurück
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment