Bei dem 2. versteh ich es jedoch nicht ganz...ist es nicht egal welche Zahlen benutzt werden da die Verschlüsselung ja mit der Multiplikation und erst die Entschlüsselung mit der Division des bereits benutzten Multiplikators abläuft?
Nein, aus zwei Gründen. Die (
Ansi-)Zeichen haben 8-Bit, ord also liefert Werte 0..255, wenn Du die multipliziert erhält man im allgemeinen Werte > 255, die damit nicht in ein Zeichen passen. Deshalb könnte der Verschlüsselungsteil sein
c2 := char( faktor*ord(c1) mod 256)
als nur die untersten 8 Bit des Produkts.
Zweitens: Wenn Du zB faktor=16 hast, gibt es ein Problem
16 -> 0
32 -> 0
etc. Das heißt, eine Entschlüsselung ist nicht möglich. Aber zB factor=13 ist, entschlüsselt wird dann mit dem Faktor 197. (Das ist modulare Mathematik, muss man nicht unbedingt wissen).
Und nochmal: Dies ist nur eine Einführung und gefährlich, weil nicht darstellbar Zeichen entstehen können. Wie schon von p80286 gesagt: binär wäre besser, d.h. Dein Ausgabe wäre ein file of byte.
Aber bau erstmal die Sache mit char/string.
Gute Nacht.