Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#23

AW: Variablentypen bei ord() erzeugen Fehler

  Alt 12. Jul 2018, 23:04
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.

Geändert von gammatester (12. Jul 2018 um 23:12 Uhr)
  Mit Zitat antworten Zitat