Zurückberechnung von substr. bzw. substring
Philipp
- javascript
0 Christian0 Sven Rautenberg0 Philipp
Ist es technisch möglich bzw. gibt es eine Funktion mit der man Ergebnisse von substr() bzw. substring() zurückberechnen kann?
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.
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
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?
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
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.
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
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
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.
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
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
Ich will ja wissen wie man solche Algorithme zurückberchnen kann! Darum geht es mir ja!
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
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