Till: charCodeAt

hallo
ich habe nur ine kurze frage kann man
charCodeAt auch rückgängig berechnen???

es würde mich freuen rückmeldung zu erhalten...
MfG Till

  1. Hallo Till

    ich habe nur ine kurze frage kann man
    charCodeAt auch rückgängig berechnen???

    var Name = "Hans";
     alert(Name.charCodeAt(Name.length-1));

    Ueber ein Konstrukt wie Arrayname.length-n kannst du "von hinten" rechnen.

    viele Gruesse
      Stefan Muenz

    1. Hallo.

      ich habe nur ine kurze frage kann man
      charCodeAt auch rückgängig berechnen???

      var Name = "Hans";
      alert(Name.charCodeAt(Name.length-1));

      Ueber ein Konstrukt wie Arrayname.length-n kannst du "von hinten" rechnen.

      Sicher, dass Till mit dem »rückgängig berechnen« nich fromCharCode()(http://selfhtml.teamone.de/javascript/objekte/string.htm#from_char_code) meint?

      Gruß
      Norbert

      1. <script>
        function submitentry(){
        password = document.password1.password2.value.toLowerCase()
        username = document.password1.username2.value.toLowerCase()
        passcode = 1
        usercode = 1
        for(i = 0; i < password.length; i++) {
        passcode *= password.charCodeAt(i);
        }
        for(x = 0; x < username.length; x++) {
        usercode *= username.charCodeAt(x);
        }
        if(usercode==134603040&&passcode==126906300)
        {
        window.location=password+".htm"}
        else{
        alert("password/username combination wrong")}
        }
        </script>

        diese passwort abfrage ob man "134603040" (John) also ob man 134603040 so zurückrechnen kann das John wieder rauskomm???

        1. Hallo Till,

          Du führst eine Folge von Multiplikationen durch, die rückwärts nicht eindeutig gelöst werden kann. 3*4 liefert ebenso wie 2*6 als Ergebniss die 12. Es gibt also mehrere Benutzerkennungen, die zum gleichen usercode führen können.

          Gruß,    Jürgen

          1. also ist es quasie nicht hackbar ohne bruteforce oder sonstiege tools???

            1. Hallo Till!

              also ist es quasie nicht hackbar ohne bruteforce oder sonstiege tools???

              Hackbar...Tools?
              Zählt mein Taschenrechner auch als Tool?

              nimm mal dein Beispiel: passcode==126906300

              Das Zerlegen wir jetzt in seine Primfaktoren. Hilfreich ist dabei, das es nur ein Produkt aus lauter Zahlen zwischen 97 und 122 sein kann. (Nämlich die Kleinbuchstaben [1])

              2*2*3*3*5*5*37*37*103=126906300

              Jetzt müssen alle Zahlen die du multipliziert hast ja Kleinbuchstaben gewesen sein also zwischen 97 und 122 liegen.
              Die 103 ist einfach, das ist schon mal ein 'g'.
              37*2=74 ist ausserhalb, 37*4=148 ist ausserhalb, bleibt also nur 37*3 ergibt 'o'.
              Und das gleich zweimal... Glück gehabt.
              Alle übriggeblieben Faktoren multipliziert sind 100, das ist eindeutig ein 'd'.

              103*74*74*100=126906300
               g  o  o  d

              Tja, und da das ein Lexikonwort ist habe ich wohl schon wieder Glück gehabt. (Das Passwort könnte auch dogo sein, vertauschen ändert ja nix am Produkt.)

              Damit brauche ich jetzt nur noch 16 Dateinamen zu testen (good.htm Good.htm...) es sei denn das ganze läuft auf einem MS-Bertriebssystem. ( Das unterscheidet das bekanntlich nicht.)

              Gruss,
               Carsten

              [1] Genaugenommen ein paar mehr, aber das ändert nix am Prinzip.

              1. Hallo Till!

                Korrektur:

                bleibt also nur 37*3=111 ergibt 'o'.

                103*111*111*100=126906300
                g  o  o  d

                http://selfhtml.teamone.de/inter/zeichensaetze.htm

                Gruss,
                 Carsten

        2. Hallo.

          diese passwort abfrage ob man "134603040" (John) also ob man 134603040 so zurückrechnen kann das John wieder rauskomm???

          Man kann aus einer Reihe Zahlen, sobald man herausgefunden hat, nach wievielen Zeichen der jeweilige Latin-1-Zeichensatzwert endet (zwei oder drei)[1], ist das kein Problem. Da du die jeweiligen Zeichensatzwerte jedoch multiplizierst, wird das die Sache nahezu unmöglich machen. Zumal somit mehrere Usernamen ein und den selben Code haben[2].

          Gruß
          Norbert

          [1]
          <script type="text/javascript">
          <!--
           am = "Latin-1-Zeichensatzwerte\n\n";
           uc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
           lc = "abcdefghijklmnopqrstuvwxyz";
           for(i = 0; i < 26; i++){am+=String.fromCharCode(uc.charCodeAt(i)) + "\t=\t" + uc.charCodeAt(i) + "\t" + String.fromCharCode(lc.charCodeAt(i)) + "\t=\t" + lc.charCodeAt(i) + "\n"}
           window.alert(am);
          //-->
          </script>

          [2]
          <script type="text/javascript">
          <!--
           usercode = 1; username = "Otto".toLowerCase();
           for(i = 0; i < username.length; i++){usercode*=username.charCodeAt(i)}
           window.alert(usercode);
           usercode = 1; username = "Toto".toLowerCase();
           for(i = 0; i < username.length; i++){usercode*=username.charCodeAt(i)}
           window.alert(usercode);
          //-->
          </script>