Philipp: Zurückberechnung von substr. bzw. substring

Ist es technisch möglich bzw. gibt es eine Funktion mit der man Ergebnisse von substr() bzw. substring() zurückberechnen kann?

  1. Ist es technisch möglich bzw. gibt es eine Funktion mit der man Ergebnisse von substr() bzw. substring() zurückberechnen kann?

    du meinst, aus einem Substring wieder den Originalstring herstellen, von dem der Substring ausgeschnitten wurde???
    Nein, das ist nicht möglich. Du kannst dir nur den Originalstring in ner Variablen speichern.

  2. Moin!

    Ist es technisch möglich bzw. gibt es eine Funktion mit der man Ergebnisse von substr() bzw. substring() zurückberechnen kann?

    Wohin zurück denn?

    Das Ergebnis ist jeweils ein String. Damit kann man ohnehin schon mal nicht rechnen. Was also genau willst du?

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
  3. Z.b. habe ich

    var b=document.login.b.value;
    b=b.toLowerCase();
    var b1= b.substr(2,3)+ b.substr(0,1)+ b.substr(1,2);

    und dann folgende if-Abfrage

    if (b1=="metim") etc.

    Ist es jetzt möglich das Originalwort herzustellen aus dem das Wort metim herausgeschnitten wurde?

    1. Hallo Philipp,

      Ist es jetzt möglich das Originalwort herzustellen aus dem das Wort metim herausgeschnitten wurde?

      Wozu? Das steht doch in b noch drin.

      Grüße
      Andreas

      1. Wozu? Das steht doch in b noch drin.

        nein tut es nicht. in dem fall zumindest nicht, weil das eine passwort abfrage darstellen soll. der trick dabei soll ja sein, dass man aus dem substring das originalwort herausfinden soll.

        meine frage ist nun ob es eine funktion dafür gibt.

        1. Hi,

          meine frage ist nun ob es eine funktion dafür gibt.

          Nein, gibt es immer noch nicht! Der substring stellt einen eigenständigen String dar. Ob der String nun irgendwo ausgeschnitten wurde, oder direkt definiert wurde, weiß JavaScript nicht mehr!

          Christian

        2. Moin!

          nein tut es nicht. in dem fall zumindest nicht, weil das eine passwort abfrage darstellen soll. der trick dabei soll ja sein, dass man aus dem substring das originalwort herausfinden soll.

          Gähn. Die Substring-Verkettung rückwärts zu rechnen ist nun wirklich das leichteste.

          Du hast:

          var b1= b.substr(2,3)+ b.substr(0,1)+ b.substr(1,2);

          Daraus folgt: b1 setzt sich aus drei Komponenten zusammen. Die erste Komponente ist 3 Zeichen lang, die zweite ist ein Zeichen lang, und dir dritte ist zwei Zeichen lang - zusammen 6 Zeichen.

          Die erste Komponente beginnt beim dritten Zeichen des Strings, die zweite Komponente beim ersten Zeichen, und die dritte beim zweiten Zeichen (warum das allerdings Sinn machen soll, weiß ich nicht).

          Aus diesen Überlegungen folgt:

          if (b1=="metim")

          Wenn der Ausgangsstring ein Zeichen lang ist, dann ist das einzige enthaltene Zeichen das einzige Zeichen von b1.

          Wenn der Ausgangsstring zwei oder drei Zeichen lang ist, enthalten die ersten drei Zeichen von b1 den Ausgangsstring b.

          Wenn der Ausgangsstring 4 bis 6 Zeichen lang ist, enthalten die letzten drei Zeichen von b1 die ersten drei Zeichen von b, und die ersten Zeichen von b1 enthalten die letzten Zeichen von b.

          Folglich wird der String b, wenn b1 == "metim" ist, auf "timme" lauten.

          Es gibt zwar keine Funktion zum direkten Zurückwandeln des Strings, aber die Transformation und Umsortierung, die die Funktionen machen, kann man mit eigenen Augen ja sehen, aufzeichnen, umkehren und dann eine eigene Funktion schreiben, die die Rückwandlung realisiert.

          Aber mal abgesehen davon: Wenn die Passwortabfrage sich darauf beschränkt:

          if (b1=="metim") { location.href="geheime_seite.html"; }

          dann kann man auch einfach direkt auf die geheime Seite gehen.

          - Sven Rautenberg

          --
          ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
          1. Wenn ich timme in die Funktion

            b = "timme";
            var b1= b.substr(2,3)+ b.substr(0,1)+ b.substr(1,2);
            document.write(b1);

            einsetze komme ich auf folgendes Ergebnis: mmetim - kann man überhaupt von 4 Zeichen auf 5 Zeichen bzw. 6 Zeichen kommen?

            Die Seite die ich meine lautet: http://www.hannover.ionichost.com/onze.htm

            Ich könnte einfach die Seite aufrufen (sie steht ja auch im Source Code) aber der setzt die Passwörter vorraus.

            1. Moin!

              Die Seite die ich meine lautet: http://www.hannover.ionichost.com/onze.htm

              Was denn, schon der elfte Level und immer noch einfache JS-Abfragen? Geh mal zu http://www.try2hack.nl/ und schau Dir an, wie man sowas richtig macht.

              So long

              --
              Menschen und Völker handeln erst vernünftig, wenn alle anderen Möglichkeiten erschöpft sind.
                  -- Abba Solomon Eban
    2. Moin!

      var b=document.login.b.value;
      b=b.toLowerCase();
      var b1= b.substr(2,3)+ b.substr(0,1)+ b.substr(1,2);

      und dann folgende if-Abfrage

      if (b1=="metim") etc.

      Ist es jetzt möglich das Originalwort herzustellen aus dem das Wort metim herausgeschnitten wurde?

      Nein. Greif auf die Variable b zu, sofern die noch existiert.

      Allerdings hege ich gewisse Zweifel, dass das, was du planst, auch funktioniert. Es sieht danach aus, dass du per Javascript eine Passwortabfrage realisieren willst. Sowas funktioniert nicht, weil es immer umgehbar ist. Man muß nur deinen Algorithmus zurückrechnen, um herauszukriegen, was man für b einsetzen muß, um b1 herauszubekommen.

      Wenn du irgendeine Sicherheit haben willst, benutze .htaccess-Authentifizierung (die geht auch ohne irgendeine Skriptsprache bei den meisten Providern). Oder verzichte.

      - Sven Rautenberg

      --
      ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
      1. Ich will ja wissen wie man solche Algorithme zurückberchnen kann! Darum geht es mir ja!

        1. Moin!

          Ich will ja wissen wie man solche Algorithme zurückberchnen kann! Darum geht es mir ja!

          Du willst also http://www.try2hack.nl ausprobieren, ja?

          - Sven Rautenberg

          --
          ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
    3. Hi,

      Z.b. habe ich

      var b=document.login.b.value;
      b=b.toLowerCase();
      var b1= b.substr(2,3)+ b.substr(0,1)+ b.substr(1,2);

      b1 setzt sich also aus den Zeichen mit den Indizes
      2,3,4 + 0 + 1,2
      zusammen.

      Also 6 Zeichen.
      Da das Vergleichswort nur 5 Zeichen enthält, muß der ursprüngliche String zu kurz sein.
      Der erste Teil ist derjenige, der auf den am weitesten hinten stehenden Teil zugreift, also muß dieser gekürzt werden.

      Also
      2,3 + 0 + 1,2
      Jetzt sind wir bei den geforderten 5 Zeichen.

      23012
      metim

      Sortiert nach Indizes (unter wegschmeißen des doppelten 2ers):
      time

      Auf den ursprünglichen Eingabe-String kann nicht zurückgerechnet werden,
      da das toLowerCase() nicht eindeutig zurückgerechnet werden kann.
      Sowohl time als auch TIME oder TiME oder TimE usw. sind möglich.
      Aber da alle Kombinationen auf
      time
      reduziert werden, ist es gar nicht nötig.

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/