Hallo!
Ich habe eine Frage zum Caesar-Algorithmus bzw. ROTxx-Algorithmus.
ROT13 ist eine (theoretisch) recht simple Verschlüsselung, die im zu verschlüsselnden Text jeden der 26 Buchstaben des englischen Alphabets um 13 Buchstaben nach vorne/hinten verschiebt. Beim Caesar-Algorithmus ist es das selbe, nur ist hier die Anzahl Stellen der Verschiebung der Buchstaben variabel.
ROT13 gibt es schon als Funktion bei PHP, aber leider muss ich den Text mit ROT7 (Alphabet wird um 7 Stellen nach hinten verschoben) ver- und (mit ROT19) entschlüsseln lassen.
Ich dachte mir, das ist ganz einfach. Es wird beim Verschlüsseln einfach jeder einzelne Buchstabe ersetzt:
…
$eingabe=str_replace("a", "t", $eingabe);
$eingabe=str_replace("b", "u", $eingabe);
$eingabe=str_replace("c", "v", $eingabe);
$eingabe=str_replace("d", "w", $eingabe);
$eingabe=str_replace("e", "x", $eingabe);
$eingabe=str_replace("f", "y", $eingabe);
$eingabe=str_replace("g", "z", $eingabe);
…
$eingabe=str_replace("t", "m", $eingabe);
$eingabe=str_replace("u", "n", $eingabe);
$eingabe=str_replace("v", "o", $eingabe);
$eingabe=str_replace("w", "p", $eingabe);
$eingabe=str_replace("x", "q", $eingabe);
$eingabe=str_replace("y", "r", $eingabe);
$eingabe=str_replace("z", "s", $eingabe);
…
Wenn ich so den Text „abc“ kodieren will, wird „a“ durch „t“ ersetzt und später „t“ durch „m“, weil das Script nicht merkt, ob ein Buchstabe schon ersetzt wurde, oder noch nicht.
Hat jemand eine Idee, wie man das Problem noch lösen könnte?
Tulkas
Ich habe eine Frage zum Caesar-Algorithmus bzw. ROTxx-Algorithmus.
ROT13 ist eine (theoretisch) recht simple Verschlüsselung, die im zu verschlüsselnden Text jeden der 26 Buchstaben des englischen Alphabets um 13 Buchstaben nach vorne/hinten verschiebt. Beim Caesar-Algorithmus ist es das selbe, nur ist hier die Anzahl Stellen der Verschiebung der Buchstaben variabel.
ROT13 gibt es schon als Funktion bei PHP, aber leider muss ich den Text mit ROT7 (Alphabet wird um 7 Stellen nach hinten verschoben) ver- und (mit ROT19) entschlüsseln lassen.
Ich dachte mir, das ist ganz einfach. Es wird beim Verschlüsseln einfach jeder einzelne Buchstabe ersetzt:
…
$eingabe=str_replace("a", "t", $eingabe);
$eingabe=str_replace("b", "u", $eingabe);
$eingabe=str_replace("c", "v", $eingabe);
$eingabe=str_replace("d", "w", $eingabe);
$eingabe=str_replace("e", "x", $eingabe);
$eingabe=str_replace("f", "y", $eingabe);
$eingabe=str_replace("g", "z", $eingabe);
…
$eingabe=str_replace("t", "m", $eingabe);
$eingabe=str_replace("u", "n", $eingabe);
$eingabe=str_replace("v", "o", $eingabe);
$eingabe=str_replace("w", "p", $eingabe);
$eingabe=str_replace("x", "q", $eingabe);
$eingabe=str_replace("y", "r", $eingabe);
$eingabe=str_replace("z", "s", $eingabe);
…
Wenn ich so den Text „abc“ kodieren will, wird „a“ durch „t“ ersetzt und später „t“ durch „m“, weil das Script nicht merkt, ob ein Buchstabe schon ersetzt wurde, oder noch nicht.
Hat jemand eine Idee, wie man das Problem noch lösen könnte?
Tulkas
Kommentar