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?