Created
June 7, 2011 07:15
-
-
Save xenor/1011810 to your computer and use it in GitHub Desktop.
an easy-to-understand caesar-encryption program in java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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