Andavos: Zeichen => ASCII

Hallo,
ich sags vorweg.
Ich habe von JavaScript sehr sehr sehr wenig Ahnung. Die Grundsachen wie Schleife, IF-Anweisungen, evt. noch Variablen hab ich drauf.
Sonst Programmiere ich lieber PHP/MySQL und leite daher die Befehle ab, aber jetzt komm ich nicht weiter.

Also ich habe eine Inputbox wo ich einen Text habe.
Die Frage ich so ab:
var M = form.message.value

So weit, so gut.

Jetzt kommt das schwere, und zwar möchte ich die (jeden einzelnen) Buchstaben/Zeichen aus der Textbox in deren ASCII Code umwandeln.

Also aus G wird dann z.B. 71, aus e dann 101 und so weiter.

Diese Zeichen am besten durch ein |, aber nur wenn die Länge der Zahlen xx Zeichen übertreten.
Wenn man das z.B. nach 6 Zahlen einstellt, müsste Geheim so aussehen:
71 101 104 101 105 109 daraus wird:
71101|104101|105109

Das wärs erstmal.
Währe froh wenn jemand mir sagen könnte, welche Befehle dies macht.

P.S. Warum mache ich das:
Ich möchte eine Art SSL Verschlüsselung Programmieren in PHP/JavaScript.
Den PHP Teil habe ich bereits (entschlüssel mit geheimen Key per  RSA).

RSA-Script für JavaScript ist auch schon fertig, allerdings muss ich ja Zahlen berechnen. Deswegen müssen die Buchstaben erst umgewandelt werden ;)

MFG
Andavos

  1. Hallo Andavos,

    Jetzt kommt das schwere, und zwar möchte ich die (jeden einzelnen) Buchstaben/Zeichen aus der Textbox in deren ASCII Code umwandeln.

    Bist Du Dir sicher, dass man da nur Zeichen eingeben kann, für die es ASCII-Code gibt?

    Also aus G wird dann z.B. 71, aus e dann 101 und so weiter.

    Was aus €, was aus ä, ...?
    aber schon mal in http://de.selfhtml.org/javascript/objekte/string.htm#char_code_at charCodeAt() nachgelesen? Ist _kein_ ASCII :-)

    Diese Zeichen am besten durch ein |, aber nur wenn die Länge der Zahlen xx Zeichen übertreten.

    Hexadezimale Darstellung sollte Dein Längenproblem für ASCII lösen :-)

    P.S. Warum mache ich das:
    Ich möchte eine Art SSL Verschlüsselung Programmieren in PHP/JavaScript.

    Hast Du Dir schon die Feature-Artikel
    http://aktuell.de.selfhtml.org/artikel/javascript/md5/index.htm und
    http://aktuell.de.selfhtml.org/artikel/javascript/utf8b64/index.htm angeschaut?

    Freundliche Grüsse,

    Vinzenz

    1. Hallo,
      das Passwort nur mit MD5 zu verschlüssel ist viel Unsicherer als das Passwort gar nicht zu Verschlüsseln, denn:

      Wenn ich jetzt den MD5-Hashcode von einer Person habe, wodran man schnell kommt, z.B. wenn er sich im eigenem Forum angemeldet hat, dann reicht dieser Hash-Code aus, um mich einzuloggen.

      Dazu muss man das Prinzip verstehen.

      Der User gibt sein Passwort in das Passwortfeld ein. Er klickt dann auf "Login".
      Ein Javascript liest dann beim klicken das Passwort aus dem Passwortfeld aus, verwandelt es in einen MD5-Hash Code und fügt es (den Hash) dann in das Feld, oder in ein Hidden Feld ein.

      Wenn ich jetzt den Hash Code habe, dann deaktiviere ich JavaScript, oder bastel mit eine gefaktes Formular, und füge den Hashcode des Users ein. Dann sende ich das Formular mit dem Hashcode an den PHP Script und er lässt mich rein.
      Denn er kann nicht unterscheiden ob dieser Hashcode vorher ein Klartext war, oder ob ich nur den Hashcode eingefügt habe.

      Jetzt muss man abwegen:
      Was ist wahrscheinlicher? Das jemand deine Leitung abzapft und dann die Klartextpasswörter erhält, oder das jemand dein Hashcode hat?
      Bei vielen ist der 2. Fall zutreffender.

      Deswegen sind Asymetrische Verfahren, wie z.B. RSA, für soetwas viel besser geeignet. Denn der User verschlüsselt das Passwort dann damit, und _nur_ der Server kann es dann wieder entschlüsselt, sofern sein geheimer Key nicht geknackt wurde.

      Und ja nur Zahlen werden akzeptiert, denn es ist nach der Formel:
      zahl ^ e mod n

      und
      a^7 mod 2557

      geht wohl schlecht ;).

      MFG
      Andavos

      1. Hallo Andavos,

        ich fürchte, Du hast mein Posting mißverstanden. Mir ging es nicht um Vor- und Nachteile symmetrischer und asymmetrischer Verschlüsselungsverfahren:

        das Passwort nur mit MD5 zu verschlüssel ist viel Unsicherer als das Passwort gar nicht zu Verschlüsseln, denn:

        ...

        Deswegen sind Asymetrische Verfahren, wie z.B. RSA, für soetwas viel besser geeignet...

        Es ging mir bei meinen Hinweisen um die Methode charCodeAt() und was sie zurückliefert. Der von mir angeführte Featureartikel http://aktuell.de.selfhtml.org/artikel/javascript/utf8b64/index.htm, speziell http://aktuell.de.selfhtml.org/artikel/javascript/utf8b64/utf8.htm#a4 zeigt diese Methode im Einsatz und diskutiert weitere Eigenschaften von charCodeAt().

        Wenn Du nur 7-Bit-ASCII-Zeichen erwartest, sollte Dir charCodeAt() die von Dir gewünschte Kodierung liefern. Eine hexadezimale Darstellung der Zeichen erledigt in diesem Fall Dein Längenproblem. Selbstverständlich kannst Du mit der Array-Methode join() das Dir genehme Trennzeichen einfügen.

        charCodeAt(), siehe http://de.selfhtml.org/javascript/objekte/string.htm#char_code_at
        join(), siehe http://de.selfhtml.org/javascript/objekte/array.htm#join

        Freundliche Grüsse,

        Vinzenz

        PS: Bitte lies den Featureartikel http://aktuell.de.selfhtml.org/artikel/javascript/utf8b64/index.htm und denke an den Euro, die deutschen Sonderzeichen, ...

        1. Hi,

          Wenn Du nur 7-Bit-ASCII-Zeichen erwartest, sollte Dir charCodeAt() die von Dir gewünschte Kodierung liefern.

          Alle charCodes auf einen Blick: http://Coding.binon.net/CharCode

          charCode() umfaßt ASCII 32-127 sowie ISO-8859-1 160-255.

          Gruß, Cybaer

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          1. charCode() umfaßt ASCII 32-127 sowie ISO-8859-1 160-255.

            ^^At
            Cybaer,
            Wie du 127 herausbekommen willst, ist mir ein Rätsel.
            Gunnar

            --
            "Nobody wins unless everybody wins." (Bruce Springsteen)
            1. Hi,

              charCode() umfaßt ASCII 32-127 sowie ISO-8859-1 160-255.
                        ^^At

              Nein, gemeint war eigentlich CharCode als Überbegriff - sorry. charCodeAt() kann, zumindest ab js 1.3, deutlich mehr erkennen (Unicode).

              Wie du 127 herausbekommen willst, ist mir ein Rätsel.

              alert(String.fromCharCode(127).charCodeAt(0));

              Ich hoffe, ich habe damit deinen Tag gerettet?! ;-)

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!