Die im vorangegangenen Abschnitt verwendeten Methoden werden nun im folgenden Beispiel codiert:
import java.io.*;
public class krypto {
krypto() {
}
public static void main (String args[]) {
}
public static BufferedReader ropen(String dateiname) throws Exception {
File f = new File(dateiname);
BufferedReader ein = null;
try {
FileReader fr = new FileReader(f);
ein = new BufferedReader(fr);
}
catch (FileNotFoundException e) {
System.out.println("Datei nicht da");
}
return ein;
}
public static String zeilelesen(BufferedReader br) throws Exception {
String zeile = "";
try {
zeile = br.readLine();
}
catch (Exception e) {
System.out.println(e.toString());
}
return zeile;
}
public static void ausgeben(BufferedReader br) throws Exception {
try {
String zeile = br.readLine();
while (zeile != null) {
System.out.println(zeile);
zeile = br.readLine();
}
}
catch (Exception e) {
System.out.println(e.toString());
}
}
public static DataOutputStream wopen(String dateiname) throws Exception {
File f = new File(dateiname);
FileOutputStream daten = new FileOutputStream(f);
DataOutputStream datenraus = null;
try {
datenraus = new DataOutputStream(daten);
}
catch (Exception e) {
System.out.println("Datei nicht da");
}
return datenraus;
}
public static void zeileschreiben (DataOutputStream dos, String zeile) throws Exception {
try {
dos.writeBytes(zeile+"\n");
}
catch (Exception e) {
System.out.println(e.toString());
}
}
public static String encaesar(String zeile, int stellen) {
byte geheim[] = new byte[zeile.length()];
String geheimzeile = "";
geheim = zeile.getBytes();
for (int i=0; i<geheim.length; i++) {
if (geheim[i]>90) geheim[i]-=32;
geheim[i]+= (byte) stellen;
if (geheim[i]>90) geheim[i]-=26;
geheimzeile+=(char) geheim[i];
}
return geheimzeile;
}
public static String decaesar(String zeile, int stellen) {
byte klar [] = new byte[zeile.length()];
String klarzeile = "";
klar = zeile.getBytes();
for (int i=0; i<klar.length;i++) {
klar[i]-= (byte) stellen;
if (klar[i]<65) klar[i]+=26;
klarzeile+=(char) klar[i];
}
return klarzeile;
}
}
Erweitere das obige Beispiel um Methoden, die die Eingabe von der Standard-Eingabe und die Ausgabe auf die Standard-Ausgabe ermöglichen!
Erweitere das obige Beispiel um Methoden, die die Verschlüsselung mit dem Substitutions- und dem Vigenère Verfahren erlauben!