Was mache ich hier falsch?
Ich habe ein kleines Programm geschrieben, dass eine Nachricht verschlüsseln soll. (Die Verschlüsselung ist generell nich wirklich sicher, es soll auch nur eine kleine Übung sein). Wenn die Funktion encrypt aufgerufen wird bekomme ich als Ausgabe den selben Text der auch als input eingelesen wurde. Woran liegt das?
message ist ein String
key ist eine Zahl
1 Antwort
Also zunächst schreibst Du mal fälschlicherweise document.getElementById("massageInput")
Da kriegst Du vermutlich keinen Value, es sei denn die Element-ID des Inputelements heisst tatsächlich so. Gemeint war aber eher Message statt Massage :)
Dann der for-Loop. Das macht so keinen Sinn. Du versuchst in assoziativer Weise auf das message-Array (String characters) zuzugreifen. Du solltest das eher so machen:
for (i=0; i < message.length; i++) {
out += String.fromCharCode((message.charCodeAt(i)+key));
}
// und dann weiter unten:
document.getElementById("output").value = out;
// NB: ich habe ein separates input-element namens "output"
// fuer den Output-String erstellt
"key" wäre einfach eine Zahl, z.B. 4, die auf den Character Code addiert wird.
Das Beispiel ist wirklich primitiv, da es z.B. keine Prüfung gibt, wenn key oder das n-te Message-Character so gross ist, dass es mit key zusammen addiert über die Bereichsgrenze des Zeichensatzes hinausgeht.
Danke!
PS: Die Element-ID ist wirklich "massageInput". Habe mich wohl verschrieben.