Textcodierer
#Funktionsweise
Bei diesem Script, wird jeder einzelne Buchstabe in diesem Text zuerst in einen Zeichencode gewandelt. Zu diesem Zeichencode wird etwas addiert oder subtrahiert und danach wird wieder das Zeichen aus dem Code erzeugt. Der Text sieht danach so aus, als hätte sich jemand kreativ an seiner Tastatur ausgelassen. Wenn der Verschiebungsindex bekannt ist, kann man den Text wiederherstellen, indem man einfach den Index so oft wieder zurückschiebt, bis es passt.
Außerdem kann mit der escape Funktion jedes Leerzeichen (und andere Sonderzeichen) in einen Code umgewandelt werden, der beispielsweise auch als Webadresse gültig wäre.
Automatische Codierung
Dafür wird zunächst ein Schlüssel benötigt. Dann wird der Zeichencode jedes Zeichens aus dem Schlüssel zum indexverschieben verwendet.
Bespiel: Schlüssel "ABC" -> ergibt die Zeichencodes 65,66 und 67
Dann wird das erste Zeichen des Textes um 65 verschoben, das zweite um 66, das dritte um 67, das vierte dann wieder um 65 usw.
Danach wird der ganze Text noch mit der escape Funktion von Sonderzeichen befreit und schon ist der Text codiert (aber auch etwas länger als vorher). Durch diese Abfolge kann der Schlüssel auch mehrfach hintereinander stehen. "ABC" funktioniert genauso wie "ABCABC" und "121212" funktioniert genauso wie "12". Wenn der Schlüssel nicht passt, kommt beim Decodieren nicht mehr das Original raus. Je dichter der eingegebene Schlüssel aber am richtigen ist, desto mehr kann man den Inhalt des Textes erahnen. Allerdings kann ein so Codierter Text nicht einfach mit der normalen Indexverschiebung wiederhergestellt werden, da die Zeichen ja unterschiedlich indexverschoben sein können.
Mit dem Schlüssel "111" bekommt man ein Code, der manuell wiederhergestellt werden kann.
Mit dem Schlüssel "12" klappt das aber nicht mehr so einfach.
Je länger der Text, desto länger dauert die Bearbeitung.
Denn jedes Zeichen aus dem Text wird bearbeitet. Wenn man einen zu langen Text hat, kann es daher auch mal vorkommen, dass das Betriebssystem meint, der Browser sei abgestürzt. Daher sollte man sich je nach Rechnerleistung etwas ran tasten und nicht gleich riesige Texte einfügen.
Umwandlungsprobleme mit neuen Zeilen.
Das Zeichen 13 (Wagenrücklauf) wird in Javascript automatisch in 10 (neue Zeile) geändert (das hängt mit unterschiedlichen Systemen zusammen, siehe Steuerzeichen).
Dadurch passiert folgendes bei +1:
6>7>8>9>10>11>12>13>11>12>13>11>12>13 (usw. die Umwandlung bleibt in dieser Schleife)
und folgendes bei -1:
16>15>14>13>9>8>7>6
Zusammenfassend kann man sagen, dass der Verlust bzw. die dauerhafte Änderung von Zeichen möglich ist, wenn währen der Berechnung das Zeichen 13 geschrieben wird.
Bei der escape Funktion werden alle Sonderzeichen in einen Zeichencode umgesetzt. Dadurch wird der Text länger.
Bei der unescape Funktion werden die Zeichencodes wieder in Sonderzeichen umgesetzt. Gerade dies kann in Verbindung mit der Indexverschiebung einen Text erzeugen, der nicht wieder in seinen Ursprungzustand versetzt werden kann.
Die unescape Funktion sucht nach dem Zeichen % und wertet die 2 Zeichen dahinter (Hexcode) als Index für das Sonderzeichen. Wenn nun durch Indexverschiebung aber irgendwo ein % entstanden ist, erstellt diese Funktion ein Sonderzeichen da, wo eigentlich keins hingehört (wenn der Hexcode unbekannt ist, wird einfach kein Zeichen eingefügt). Daher sollte die unescape Funktion nicht zu oft und nicht in zu vielen Kombinationen verwendet werden. Daher sind die Schaltflächen auch rot (das Decodieren bei der automatischen Codierung enthält auch die unescape Funktion).