Variable al (mit Hilfslineal)
<span style='font-size:8pt;line-height:100%'><font size=1 face="Courier New">
`1234567890-=~!@#%^&*()_+qweifyutop[]QWERTYUIOP{}|oeeiflryt;AASYENDKQ:ajeeurj,./ZXCVBNM<>c?
0.2.4.6.8.0.2.4.6.8.0.2.4.6.8.0.2.4.6.8.0.2.4.6.8.0.2.4.6.8.0.2.4.6.8.0.2.4.6.8.0.2.4.6.8.0.
0.........1.........2.........3.........4.........5.........6.........7.........8.........9.</font></span>
Variable pe
<span style='font-size:8pt;line-height:100%'><font size=1 face="Courier New">99.98.81.64.37.41.60.38.38.59.84.98.81.67.60.60.60.41.81.59.67</font></span>
Feststellung
PE wird in LS geschrieben, wobei von LS immer die ersten zwei Zeichen benutzt und anschliessend rausgeschnitten werden. Daher habe ich PE schon in Ziffernpaare unterteilt. Werte, die aus LS entnommen werden, kennzeichne ich mit einem (°) dahinter.
Variablen Initialisisierung
tst .... => username-password-
nls .... => (leer)
a ...... => 99°-91 => 8
ab ..... => 98°-93 => 5
aeussere Schleife [1]
Bedingung: Der Rest von LS ist laenger als 28 Zeichen.
Durchlauf: Die ersten zwei Zeilen haben keine Funktion, danach werden zwei Zeichen von LS vorne entfernt. Anschliessend kommt die innere Schleife, und NACH der inneren Schleife wird dem String NLS das Zeichen von AL Index 11 hinzugefuegt => nls=nls+al.charAt(count+11), wobei count IMMER gleich 0 ist. Dieses Zeichen an Index 11 ist (-), da laesst sich also schon was ahnen...
Innere Schleife [2]
Bedingung: Zaehlervariable laeuft von 0 bis AB-1, also von 0 bis 4, also 5 mal durch.
Durchlauf: Es werden zwei Zeichen (also eine Zahl) von LS genommen und nach NR geschrieben. Von NR wird dann noch a (also 8) subtrahiert. NR ist also jeweils die naechste zweistellige Zahl von LS weniger 8. Dieser Wert in NR stellt jetzt einen Index dar, und zwar wird dem String NLS ein Zeichen aus AL mit Index NR hinzugefuegt. Beispiel Dritter Wert von PE (81): NR ist 81 minus 8 = 73. An Stelle 73 in AL steht ein (e). An NLS wird also ein (e) angefuegt. Und der Schritt dieser Art wird also 5 mal durchgelaufen.
Gesamtablauf
Die Variablen werden initialisiert. Dabei werden die ersten zwei zweistelligen Werte aus LS benutzt, wobei aber nur der erste Wert aus LS entfernt wird!
Anschliessend kommt die aeussere Schleife. Die macht jetzt erstmal nichts anderes als LS wieder um zwei Stellen vorne zu kuerzen. Die ersten zwei Werte von PE sind damit schonmal weggefallen.
Jetzt kommt die innere Schleife, die fuenf mal durchlaufen wird. Bei jedem Durchlauf wird der naechste Wert von LS genommen, 8 abgezogen und das Ergebnis dann als Index in AL benutzt, um ein Zeichen an NLS anzufuegen. Da das fuenf mal passiert, hier die ersten Zeichen:
1. 81-8 = 73 => AL[73] => e
2. 64-8 = 56 => AL[56] => l
3. 37-8 = 29 => AL[29] => i
4. 41-8 = 33 => AL[33] => t
5. 60-8 = 52 => AL[52] => e
NLS ist zu diesem Zeitpunkt schonmal (elite). Anschliessend wird ein Minus angefuegt und die aeussere Schleife erneut aufgerufen (LS ist momentan "3838598498816760606041815967 ", was 29 Zeichen sind) womit das gleiche Spielchen weitergeht.
1. 38-8 = 30 => AL[30] => f
2. 59-8 = 51 => AL[51] => o
3. 84-8 = 76 => AL[76] => r
4. 98-8 = 90 => AL[90] => c
5. 81-8 = 73 => AL[73] => e
Wieder ein Minus drangehaengt und NLS ist jetzt (elite-force-). Da LS jetzt nur noch aus (6760606041815967 ) besteht, was 17 Zeichen sind (auf das Leerzeichen achten!), ist die aeussere Schleife beendet.
NLS ist also (elite-force-) und jetzt passiert folgendes:
Es wird der Index ermittelt, an welcher Stelle in NLS (elite-force-) unser TST (username-password-) vorkommt. Kommt es nicht vor, so wird -1 von der Funktion uebergeben, daher die Abfrage
indexOf>-1. Ich denke mal, dass der Fall jetzt klar ist.
EDIT: Jetzt hab ich so lange geschrieben, dass Du die Loesung schon selber gefunden hast...