Caesar Entschlüsselung?

4 Antworten

Du hast doch die Verschlüsselung da, verstehe das Verfahren und mache die Änderungen wieder rückgängig.

Wie du siehst iteriert die for Schleife über jeden Character in deinem String. Dann wird zu dem ASCII Code des Charakters der Wert Verschiebung dazu addiert und dann wieder das Zeichen zu dem neuen Ascii Code gesucht. Das if am Schluss ist nur damit das Verfahren innerhalb der gültigen Zeichen bleibt.

Die Entschlüsselung ist also genau das selbe nur addierst du diesemal den Wert Verschiebung nicht sondern subtrahierst ihn und du bist fertig. Das if am Ende musst du dann natürlich dementsprechend anpassen.

Und nur zur Vollständigkeit deine Frage hat etwas mit Javascript und nicht mit HTML zu tun.

Du fragst ja eher nach Logik als nach Syntax wenn ich das richtig verstehe und daher bin ich mal so dreist und Antworte ohne deinen Code in der jetzigen unschönen Form zu lesen:

Für Verschlüsselung:

Wenn mit Ascii Zahl: Addiere eine Zahl %26, um die Verschiebung vorzunehmen.

CharToAscii('A') = 65

65 + 10 = 75

AsciiToChar(75)= 'K'

So oder so ähnlich wirst du das programmiert haben (und die benutzten Methoden natürlich auch).

Zum Endschlüsseln musst du als Parameter übergeben, um wie viel versetzt wurde. Sonst musst du alle 26 Möglichkeiten ausprobieren und nachsehen, ob ein existierendes Wort sich gebildet hat. Das zu machen ist aber umständlicher und vermutlich nicht Teil deiner Aufgabe. Ich ignoriere das erstmal hier:

decode(char Buchstabe, int Versatz) {

CharToAscii(Buchstabe) = X

X - Versatz = Y

return AsciiToChar(Y)

}

Das addieren und subtrahieren ist in echt "etwas" schwieriger, da du Abfangen musst, dass er nicht über das Maximum hinaus läuft.

Wenn du genauer beschreibst, wo du das Problem hast, bekommst du eine spezifischere Antwort

Woher ich das weiß:Studium / Ausbildung – Ich studiere beides.

Beim entschlüsseln einfach um (26 - Verschiebung) verschlüsseln.

Also bei abc wird einmal verschlüsselt, dann wird bcd raus. bcd jetzt 25 mal verschlüsselt ergibt wieder abc.

Was genau ist die Frage?

Du kannst ein Array machen, in dem gespeichert wird, ob Buchstaben groß, oder klein sind