Im Beispiel wird der Klartext aus einer Textdatei zeilenweise gelesen. Diese Zeile wird verschlüsselt und als Chiffretext in eine weitere Textdatei geschrieben.
import java.io.*; public class caesar2 { static File klar; static File chiffre; static DataOutputStream chiffretext; public static void main (String args[]) throws IOException{ String zeile; klar = new File(args[0]); chiffre = new File(args[1]); String verschiebung = args[2]; try { FileReader dateneingabestrom = new FileReader(klar); BufferedReader klartext = new BufferedReader(dateneingabestrom); FileOutputStream datenausgabestrom = new FileOutputStream(chiffre); chiffretext = new DataOutputStream(datenausgabestrom); zeile = klartext.readLine(); while (zeile != null) { verschluessle(zeile, verschiebung); zeile = klartext.readLine(); } } catch (IOException e) { System.err.println(e.toString()); } } public static void verschluessle (String s, String a) { byte geheim[] = new byte[256]; geheim = s.getBytes(); for (int i=0;i<geheim.length;i++) { if (geheim[i]>90) geheim[i]-=32; geheim[i]+=Integer.parseInt(a); if (geheim[i]>=90) geheim[i]-=26; } try { for (int i=0; i<geheim.length; i++) chiffretext.write(geheim[i]); chiffretext.write('\n'); } catch (IOException e) { System.err.println(e.toString()); } } }
Damit erhalten wir aus der Klartextdatei mit dem Inhalt
Dies ist ein Test: Informatik ist schön, sagt ein Informatiklehrer - und Lehrer lügen nicht, sagt der Lehrer.
die Chiffretextdatei mit dem folgenden Inhalt:
GLHV#LVW#HLQ#WHVW=#LQIRUPDWLN#LVW#VFKùQ/#VDJW#HLQ#LQIRUPDWLNOHKUHU#0#XQG#OHKUHU#OÿJHQ#QLFKW/#VDJW#GHU#OHKUHU1
Mit welcher Verschiebung wurde die Verschlüsselung durchgeführt?