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!