ERLEDIGT
NEIN
NEIN
ANTWORTEN
18
18
ZUGRIFFE
1039
1039
EMPFEHLEN
-
28.02.04 03:48 #1
- Registriert seit
- Dec 2001
- Ort
- Hannover
- Beiträge
- 4.234
Das Ziel der Codespielerei dürfte wohl jeder aus seiner Kindheit kennen: Die berühmte Cäsar Verschlüsselung. Jeder Buchstabe eines Wortes (oder Satzes) wird im Alphabet um n Zeichen verschoben - zyklisch. Ich denke, jeder kennt die zwei Scheiben mit Alphabet, die durch drehen verschlüsseln, bzw. entschlüsseln.
Mit ein wenig Hilfe aus dem Forum habe ich folgendes Script geschrieben. Seltsamerweise bekomme ich vom Mozilla JS-Debugger keine Fehlermeldung (der IE übrigens auch nicht) sondern nur einen "NaNNaNNaNNaNNaNNaNNaNNaN"-String zurück. Irgendwo ist ein Fehler, den ich nicht finde.
Die Verschlüsselung ist natürlich auf 1:1 Übergabe des Strings gesetzt, damit man auch den 'verschlüsselten' Originalstring als Ergebnis erhält.
Mein PHP-Script war in 20 Minuten fertig, an diesem JS-Script sitze ich schon 2 Tage *kotz*
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
<script type="text/javascript"> <!-- function fInit(){ sChars = new String("abcdefghijklmnopqrstuvwxyz-"); aChars = new Array(); for(i = 0; i<sChars.length; i++){ aChars[i+1] = sChars.charAt(i); } iCharslength = sChars.length; return iCharslength; } function fFind(sSearch){ for(var x=0; x<this.length; x++){ if(this[x] == sSearch){ var iIndex = x; return iIndex; } } return -1; } Array.prototype.find = fFind; function fInject(sMail, sKey){ fInit(); aMail = new Array(); aResult = new Array(); var sResult = ""; for(var y=0; y<sMail.length; y++){ aMail[y+1] = sMail.charAt(y); } for(var z=1; z<aMail.length; z++){ if((aMail[z] - sKey) < 1){ aResult[z] = (aMail[z] - sKey) + iCharslength; } else { aResult[z] = aMail[z] - sKey; } } alert(aResult.join("")); } fInject('ich-bin-ein-satz', '27') //--> </script>Geändert von Neurodeamon (28.02.04 um 03:50 Uhr)
Copy for free - Yet another page for free software with soures:- BitUnlocker (Automatic unlock multiple Bitlocker secured drives - if you use the same password)
- W7 ScrollZoom (Use Windows 7 zoom tool through your mouse wheel)
- AppStarter (Somewhat like PortableApps launcher)
- QuakeConsole (Show/Hide windows console with your tilde key)
- BetterFileRenamer (Simple file renamer that adds date and version)
-
28.02.04 05:51 #2
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Ich hab es mal etwas angepasst, weil da anscheinend wirklich ein paar Fehler drin waren. Und wo ich schonmal dabei war, hab ich auch gleich noch mal etwas aufgeräumt.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
<script type="text/javascript"> <!-- function fFind(sSearch){ for(var x = 0; x < this.length; x++){ if(this[x] == sSearch){ var iIndex = x; return iIndex; } } return -1; } Array.prototype.find = fFind; function stringToArray(stringValue) { stringArray = new Array(); for(i = 0; i < stringValue.length; i++) { stringArray[i + 1] = stringValue.charCodeAt(i) - 96; } return stringArray; } function fInject(sMail, sKey){ sChars = new String("abcdefghijklmnopqrstuvwxyz"); aChars = stringToArray(sChars); aMail = stringToArray(sMail); aResult = new Array(); var sResult = ""; iCharslength = sChars.length; for(var z = 1; z < aMail.length; z++) { if((aMail[z] - sKey) < 1){ aResult[z] = (aMail[z] - sKey) + iCharslength; } else { aResult[z] = aMail[z] - sKey; } } for(j = 1; j < aResult.length; j++) { aResult[j] = String.fromCharCode(aResult[j] + 96); } return aResult.join(""); } alert(fInject("ich-bin-ein-satz", "27")); //--> </script>
-
28.02.04 08:37 #3
- Registriert seit
- Dec 2001
- Ort
- Hannover
- Beiträge
- 4.234
Wenn ich jetzt mal drüberschaue finde ich - bis auf die neue anordnung - nur wenige grundlegende Änderungen.
Da wäre charCodeAt statt charAt. Aber was soll das ' - 96' ? Hat das was mit dem Latin1 Zeichensatz zu tun?
Die stringToArray-Funktion erwähne ich mal nichtcharCodeAt(i) - 96;
Ich wollte mit dem Umschreiben warten, bis ich den Bug gefunden hab
Da ich noch am lernen bin, würde ich gerne wissen was ich genau falsch gemacht habe bei meinem Code.
Aber irgendwie kommt bei Deiner Korrektur aber auch nichts besseres heraus
Ausgabe: hbg, ahm,dhm,r`syCopy for free - Yet another page for free software with soures:- BitUnlocker (Automatic unlock multiple Bitlocker secured drives - if you use the same password)
- W7 ScrollZoom (Use Windows 7 zoom tool through your mouse wheel)
- AppStarter (Somewhat like PortableApps launcher)
- QuakeConsole (Show/Hide windows console with your tilde key)
- BetterFileRenamer (Simple file renamer that adds date and version)
-
Ich muss gestehen, ich hab mich als Kind nicht mit Caesar's Code beschäftigt...nur mit unsichtbarer Tinte

kannst du mal erläutern, was genau der tut....also was der z.B. aus
'ich-bin-ein-satz'
machen soll...
-
28.02.04 15:47 #5
- Registriert seit
- Apr 2002
- Ort
- Ingolstadt
- Beiträge
- 2.940
Ich glaub ihr habt nur aneinander vorbeigeredet
. Neuro, du willst den String verschieben, dabei aber nur auf den Zeichen vorrat in sChars zurückgreifen, oder? Dario: Du shiftest den String um den als Parameter übergeben sKey, ohne rücksicht auf sChars? Kann auch sein das ich euch jetzt falsch verstanden habe.
Ich habs mal etwas geändert
- vielleicht kommt das näher an das fertige Teil:
PHP-Code:<script type="text/javascript">
<!--
function fFind(sSearch){
for(var x = 0; x < this.length; x++){
if(this[x] == sSearch){
var iIndex = x;
return iIndex;
}
}
return -1;
}
Array.prototype.find = fFind;
function stringToArray(stringValue) {
stringArray = new Array();
for(i = 0; i < stringValue.length; i++) {
stringArray[i] = stringValue.charAt(i);
}
return stringArray;
}
function fLoop(iOffset){
if(iOffset>this.length){
return this[iOffset%this.length];
}else{
return this[iOffset];
}
}
Array.prototype.loop = fLoop;
function fInject(sMail, sKey){
sChars = new String("abcdefghijklmnopqrstuvwxyz-");
aChars = stringToArray(sChars);
aMail = stringToArray(sMail);
aResult = new Array();
var sResult = "";
iCharslength = sChars.length;
for(var x=0; x<aMail.length; x++){
aResult[x] = aChars.loop(parseInt(aChars.find(aMail[x]))+parseInt(sKey));
}
return aResult.join("");
}
alert(fInject("ich-bin-ein-satz", "10"));
-
Mein Ergebnis
mit eingebautem Decoder
)....zum dekodieren im Aufruf die 0 durch 1 ersetzen.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
<script type="text/javascript"> <!-- sChars =String("abcdefghijklmnopqrstuvwxyz-"); function caesar(str,n,decode) { while(n>=sChars.length){n-=sChars.length;} z=decode?-n:n;aChars=new Array();out=''; for(i=0;i<sChars.length;++i) { x=i+z; if(x>=sChars.length){x-=sChars.length;} else if(x<0){x+=sChars.length;} aChars[sChars.charAt(i)]=x; } for(i=0;i<str.length;++i) { out+=sChars.charAt(aChars[str.charAt(i)]); } return out; } alert(caesar("ich-bin-ein-satz",13,0)); //--> </script>
-
28.02.04 16:00 #7
- Registriert seit
- Apr 2002
- Ort
- Ingolstadt
- Beiträge
- 2.940
Ausgezeichnet
- wenigsten kommen wir auf das gleiche Ergebniss
-
28.02.04 23:56 #8
- Registriert seit
- Dec 2001
- Ort
- Hannover
- Beiträge
- 4.234
Korrekt! Genau das ist der Sinn der Sache. Ich greife auf den selbst definierbaren Zeichenvorrat.Ich glaub ihr habt nur aneinander vorbeigeredet . Neuro, du willst den String verschieben, dabei aber nur auf den Zeichen vorrat in sChars zurückgreifen, oder? Dario: Du shiftest den String um den als Parameter übergeben sKey, ohne rücksicht auf sChars? Kann auch sein das ich euch jetzt falsch verstanden habe.
Ich glaube ich beschreibe das Problem zu ungenau. Es ist super, das Ihr den Code umschreibt und mir andere Möglichkeiten aufzeigt. Irgendwie schiesst das aber am Ziel vorbei. Nehmen wir nochmal meinen Ur-Code - es geht nur um ein Problem - Vereinfachung und höhere Ordnung bringe ich später hinein. Es geht mir nur darum, das ein kleiner Teil sich nicht so verhält, wie ich es erwarten würde.
Original-Code
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
<script type="text/javascript"> <!-- function fInit(){ sChars = new String("abcdefghijklmnopqrstuvwxyz-"); aChars = new Array(); for(i = 0; i<sChars.length; i++){ aChars[i+1] = sChars.charAt(i); } iCharslength = sChars.length; return iCharslength; } function fFind(sSearch){ for(var x=0; x<this.length; x++){ if(this[x] == sSearch){ var iIndex = x; return iIndex; } } return -1; } Array.prototype.find = fFind; function fInject(sMail, sKey){ fInit(); aMail = new Array(); aResult = new Array(); var sResult = ""; for(var y=0; y<sMail.length; y++){ aMail[y+1] = sMail.charAt(y); } for(var z=1; z<aMail.length; z++){ if((aMail[z] - sKey) < 1){ aResult[z] = (aMail[z] - sKey) + iCharslength; } else { aResult[z] = aMail[z] - sKey; } } alert(aResult.join("")); } fInject('ich-bin-ein-satz', '27') //--> </script>
Fehler vermutlich im folgenden Teil:
Code :1 2 3 4 5 6 7 8
for(var z=1; z<aMail.length; z++){ if((aMail[z] - sKey) < 1){ aResult[z] = (aMail[z] - sKey) + iCharslength; } else { aResult[z] = aMail[z] - sKey; } } alert(aResult.join(""));
Wenn ich alle anderen Teile ausgeben lasse, stimmen die einzelnen Ausgaben. Aber in diesem Teil passiert die eigentliche 'Verschlüsselung'.
Zur Erklärung:
Ich definiere einen Zeichensatz. Den Zeichensatz zestückele ich und weise jedem Zeichen einen numerischen Wert zu (a = 1, b = 2, etc.). Das gleiche muss ich mit dem Input machen. Ich habe also nur noch die numerischen Werte.
Jetzt kann ich mit simpler Addition und Subtraktion die Zeichen verschieben.
Nehmen wir z. B. den String 'abcde'. Die Zahlenwerte sind: '1, 2, 3, 4, 5'. Ich kann die Zeichen nun im von mir definierten numerischen Zeichensatz-'Aphabet' verschieben indem ich den Schlüssel hinzuaddiere oder subtrahiere. Nehmen wir schlüssel '5' und Addition:
a = 1 wird zu a = 6
In unserem Zeichensatz ist 6 = f
Also wird aus a -> f
Der Knackpunkt ist der limitierte Zeichensatz der in meinem Beispiel 27 Zeichen besitzt. Wenn ich also jeden Buchstaben um 27 Zeichen verschiebe, erhalte ich den Originalstring als Ergebnis, damit weiß ich, das mein Script funktioniert. Da 27 der Verschiebung um 0 Zeichen entspricht. Eine Verschiebung um 27 Zeichen KANN nur den gleichen String liefern, eine Verschiebung um 1 hingegen würde jeden Buchstaben um 1 Zeichen verschieben. Ein höherer Wert als 27 wäre unnütz, weil 28 z. B. wieder der 1 entsprechen würde, 29 der 2, usw.
Die Verschiebung des Zeichen 'Z' um fünf Zeichen nach rechts - also eine Addition von 5 - stößt natürlich auf das Problem, das es nur 27 Zeichen gibt. Also rechne ich die Zeichen innerhalb des Strings ab A, bzw. Zeichen 1 dazu. Also: Z + 5 verschiebt das Zeichen von Z +1 zum Zeichen '-' und die restlichen 4 werden ab A dazugerechnet. Bei der Addition ist es das gleiche, nur umgedreht.
----------
Ich möchte doch bloss den Fehler in meinem Code erfahren.
Bei allem Respekt: Ich will gar kein funktionierendes anderes Script, es geht mir doch ums Verstehen meines Fehlers und nicht um ein tolles von wem anderen geschriebenen Script. Wie gesagt, mein Script läuft bis auf die Ausgabe. Ich bekomme keinen Return-Wert. Und bei einer direkten Ausgabe mit alert() erhalte ich NaN statt der einzelnen Zeichen. *sigh*
Ich hoffe das war jetzt nicht ganz so missverständlich
Geändert von Neurodeamon (29.02.04 um 00:01 Uhr)
Copy for free - Yet another page for free software with soures:- BitUnlocker (Automatic unlock multiple Bitlocker secured drives - if you use the same password)
- W7 ScrollZoom (Use Windows 7 zoom tool through your mouse wheel)
- AppStarter (Somewhat like PortableApps launcher)
- QuakeConsole (Show/Hide windows console with your tilde key)
- BetterFileRenamer (Simple file renamer that adds date and version)
-
Naja,...was mich betrifft, ich seh bei deinem Code überhaupt nicht durch, was er bezwecken soll.
Nur, weil ein Skript keinen Fehler produziert, würde ich nicht behaupten, dass es läuft.
z.B.macht das hier keinen Sinn, soweit ich sehe:
da du nirgends auf diese Function zugreifst, kanns du sie auch gleich weglassen....das Skript läuft trotzdem wie bisher.Code :1 2 3 4 5 6 7 8 9 10
function fFind(sSearch){ for(var x=0; x<this.length; x++){ if(this[x] == sSearch){ var iIndex = x; return iIndex; } } return -1; } Array.prototype.find = fFind;
Dann das:
es wird ´sChars´ definiert...OK, dann füllst du ´aChars´....aber wozu, diesen Array verwendest du nirgends. Zurückgegeben wird die Länge von sChars.Code :1 2 3 4 5 6 7 8 9 10
function fInit(){ sChars = new String("abcdefghijklmnopqrstuvwxyz-"); aChars = new Array(); for(i = 0; i<sChars.length; i++){ aChars[i+1] = sChars.charAt(i); } iCharslength = sChars.length; return iCharslength; }
Alles in allem hat dies den selben Effekt, als wenn du ´iCharslength´ und ´sChars´ normal als Variablen deklarieren würdest.
Wenn man dies tut, sieht dann alles so aus:
Das Skript macht so genau das selbe wie im Ursprungszustand.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sChars ="abcdefghijklmnopqrstuvwxyz-"; iCharslength = sChars.length; function fInject(sMail, sKey) { aMail = new Array(); aResult = new Array(); var sResult = ""; for(var y=0; y<sMail.length; y++) { aMail[y+1] = sMail.charAt(y); } for(var z=1; z<aMail.length; z++) { if((aMail[z] - sKey) < 1) { aResult[z] = (aMail[z] - sKey) + iCharslength; } else { aResult[z] = aMail[z] - sKey; } } alert(aResult.join("")); } fInject('ich-bin-ein-satz', '27')
Um die letzte Sache anzugehen....du bekommst keinen Return-Wert, weil die Funktion keinen Return-Wert hat.
Dann gehen wir mal die Funktion durch:
du definierst die Arrays ´aMail´ und ´aResult´...aber wozu ist die Variable ´sResult´ da?
Dann wird der Array ´sMail´ gefüllt:
Der hat dann folgenden Inhalt:Code :1 2 3 4
for(var y=0; y<sMail.length; y++) { aMail[y+1] = sMail.charAt(y); }
aMail[1]='i';
aMail[2]='c';
aMail[3]='h';
aMail[4]='-';
aMail[5]='b';
aMail[6]='i';
aMail[7]='n';
aMail[8]='-';
aMail[9]='e';
aMail[10]='i';
aMail[11]='n';
aMail[12]='-';
aMail[13]='s';
aMail[14]='a';
aMail[15]='t';
aMail[16]='z';
dann wird der Array ´aResult´ gefüllt.
.... da alle Elemente von ´aMail´ nicht numerisch sind, ist das Ergebnis der Berechnungen immer ´NaN´ ....daraus folgt denn im Endeffekt die Ausgabe von einer 'NaN'-Kette.Code :1 2 3 4 5 6 7 8 9 10 11
for(var z=1; z<aMail.length; z++) { if((aMail[z] - sKey) < 1) { aResult[z] = (aMail[z] - sKey) + iCharslength; } else { aResult[z] = aMail[z] - sKey; } }
Man könnte daher das Ganze auf
dezimieren.... das ist im Grunde der Teil des Originalskriptes, der überhaupt durchlaufen wird... das Ergebnis ist ebenfalls dasselbeCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14
<script type="text/javascript"> <!-- function fInject(sMail, sKey) { var aResult=new Array(); for(var z=0; z<sMail.length; z++) { aResult[z] = sMail.charAt(z) - sKey; } alert(aResult.join("")); } fInject('ich-bin-ein-satz', '27'); //--> </script>
Ich hoffe, du beisst jetzt nicht in deine Tastatur
Geändert von Sven Mintel (29.02.04 um 02:17 Uhr)
-
29.02.04 02:27 #10Narrator Tutorials.de Gastzugang
Na toll,
dann geht der Script aba immer noch nich.
Ausserdem fehlt jetzt die Abfrage ob der neue Wert im richtigen Bereich ist.
-
Warum geht es nicht..es geht genauso wie vorher

Die Abfrage nach dem Wertebereich:war überflüssig, daCode :1 2 3 4 5 6 7 8
if((aMail[z] - sKey) < 1) { aResult[z] = (aMail[z] - sKey) + iCharslength; } else { aResult[z] = aMail[z] - sKey; }
immer "false" ist.(aMail[z] - sKey ist immer NaN und daher niemals kleiner als 1)Code :1
if((aMail[z] - sKey) < 1)
-
29.02.04 02:42 #12Narrator Tutorials.de Gastzugang
Naja ich denk ma Neurodeamon wollt nicht ne stark vereinfachte Version seines Codes ham sondern wissen wo der Fehler, liegt. Obwohl ers jez wohl wissen dürfte.
EDIT:
Muss halt noch den Char in ASCII-Code umwandeln
-
29.02.04 02:45 #13
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
-96 weil ich direkt mit dem ASCII-Code des Zeichens arbeite. Und der ist bei 'a' ist 97. 97 will ich aber nicht, sondern 1.Da wäre charCodeAt statt charAt. Aber was soll das ' - 96' ? Hat das was mit dem Latin1 Zeichensatz zu tun?
Nicht? Ich denke schon. Vergleich doch einfach mal:Aber irgendwie kommt bei Deiner Korrektur aber auch nichts besseres heraus
Ausgabe: hbg, ahm,dhm,r`sy
Bei genauerem Hinsehen fällt auf, dass die Zeichen immer um die gleiche Anzahl Stellen (in diesem Fall -1) verschoben worden sind. Allerdings wie gesagt im darstellbaren ASCII-Bereich und nicht in einem selbstdefinierten Bereich.Code :1 2
ich-bin-ein-satz hbg,ahm,dhm,r`sy

Zur Kontrolle kann man sich ja aus einer ASCII-Tabelle eine Schablone basteln.
-
29.02.04 07:12 #14
- Registriert seit
- Dec 2001
- Ort
- Hannover
- Beiträge
- 4.234
Nicht weswegen Du es wohl erwarten würdest. Ich tue sowas nur ungern, aber ich muss mich selbst zitieren:Original geschrieben von fatalus
Ich hoffe, du beisst jetzt nicht in deine Tastatur
Natürlich läuft das Script nicht zusammen, ich habe es ja auch noch nicht zusammengebaut. Das ist eines meiner ersten Scripts welches ich in JS schreibe.Wenn ich alle anderen Teile ausgeben lasse, stimmen die einzelnen Ausgaben.
Ja, ich beisse in die Tastatur, da ich es anscheinend nicht schaffe mich so auszudrücken, das ich verstanden werde
Ja, ich weiß das es so läuft wie Du es erwartet hast. Aber es lieft nicht so, wie ich es meinte. Also bringt es mir doch nichts. Wo sind meine Taschentücher *uaahhää* *sniff*Bei genauerem Hinsehen fällt auf, dass die Zeichen immer um die gleiche Anzahl Stellen (in diesem Fall -1) verschoben worden sind. Allerdings wie gesagt im darstellbaren ASCII-Bereich und nicht in einem selbstdefinierten Bereich.
Zur Kontrolle kann man sich ja aus einer ASCII-Tabelle eine Schablone basteln.
Ich bau das ganze nochmal um und frage nochmal nach. Vermutlich liegt es daran, das die Struktur natürlich nicht übersichtlich genug ist.Geändert von Neurodeamon (29.02.04 um 07:23 Uhr)
Copy for free - Yet another page for free software with soures:- BitUnlocker (Automatic unlock multiple Bitlocker secured drives - if you use the same password)
- W7 ScrollZoom (Use Windows 7 zoom tool through your mouse wheel)
- AppStarter (Somewhat like PortableApps launcher)
- QuakeConsole (Show/Hide windows console with your tilde key)
- BetterFileRenamer (Simple file renamer that adds date and version)
-
29.02.04 10:04 #15
- Registriert seit
- Nov 2002
- Ort
- Altdorf bei Nürnberg
- Beiträge
- 3.027
Was ich nicht verstehe, ist: Warum machst du den neuen String in ein Array und
joinst diesen dann?
Es ist doch viel einfach, einfach einen zweiten String anzulegen, den ersten dann
in einer Schleife wie bisher durchgehen, und mit charCodeAt den ASCII Wert
herauszusuchen und um x zu erhöhen (wahlweise mit limitierung auf das Alpha-
bet). Danach schreibst du den manipulierten ASCII Wert mit fromCharCode in
den neuen String.
Zu den Fehler im Script:
Z.B. das hier:
Das sollte deswegen nicht gehen, weil charAt keinen ASCII Wert, sondern wiederCode :1
if((aMail[z] - sKey) < 1)
einen Buchstaben zurückliefert.
Auf die Gefahr hin, das zu machen, was du eigentlich vermeiden wolltest, hab
ich auch mal eine Funktion gebaut:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
[color=#212975][b][color=#1F30D7]function[/color][/b] caesarCode[color=#AA6D24]([/color]a_sInput[color=#AA6D24],[/color] a_iChars[color=#AA6D24])[/color] [color=#AA6D24]{[/color] [b][color=#1F30D7]if[/color][/b] [color=#AA6D24]([/color]a_iChars [color=#AA6D24]>[/color][color=#AA6D24]=[/color] 26[color=#AA6D24])[/color] [color=#AA6D24]{[/color] [color=#FF9F39]// Auf das Alphabet begrenzen[/color] a_iChars [color=#AA6D24]-[/color][color=#AA6D24]=[/color] 26[color=#AA6D24];[/color] [color=#AA6D24]}[/color] sRet [color=#AA6D24]=[/color] [b][color=#1F30D7]new[/color][/b] [b]String[/b][color=#AA6D24]([/color][color=#AA6D24])[/color][color=#AA6D24];[/color] [b][color=#1F30D7]for[/color][/b] [color=#AA6D24]([/color]i[color=#AA6D24]=[/color]0[color=#AA6D24];[/color] i[color=#AA6D24]<[/color]a_sInput[color=#AA6D24].[/color][b]length[/b][color=#AA6D24];[/color] i[color=#AA6D24]+[/color][color=#AA6D24]+[/color][color=#AA6D24])[/color] [color=#AA6D24]{[/color] [color=#FF9F39]// String durchlaufen[/color] iChar [color=#AA6D24]=[/color] a_sInput[color=#AA6D24].[/color][b]charCodeAt[/b][color=#AA6D24]([/color]i[color=#AA6D24])[/color][color=#AA6D24];[/color] [b][color=#1F30D7]if[/color][/b] [color=#AA6D24]([/color][color=#AA6D24]([/color]iChar [color=#AA6D24]>[/color][color=#AA6D24]=[/color] 65[color=#AA6D24])[/color] [color=#AA6D24]&[/color][color=#AA6D24]&[/color] [color=#AA6D24]([/color]iChar [color=#AA6D24]<[/color][color=#AA6D24]=[/color] 90[color=#AA6D24])[/color][color=#AA6D24])[/color] [color=#AA6D24]{[/color] [color=#FF9F39]// Wenn Großbuchstabe[/color] iChar [color=#AA6D24]+[/color][color=#AA6D24]=[/color] a_iChars[color=#AA6D24];[/color] [b][color=#1F30D7]if[/color][/b] [color=#AA6D24]([/color]iChar [color=#AA6D24]>[/color] 90[color=#AA6D24])[/color] [color=#AA6D24]{[/color] [color=#FF9F39]// Wenn kein Großbuchstaben mehr (!= wenn Kleinbuchstabe)[/color] iChar [color=#AA6D24]=[/color] 64 [color=#AA6D24]+[/color] iChar [color=#AA6D24]-[/color] 90[color=#AA6D24];[/color] [color=#AA6D24]}[/color] [b][color=#1F30D7]if[/color][/b] [color=#AA6D24]([/color]iChar [color=#AA6D24]<[/color] 65[color=#AA6D24])[/color] [color=#AA6D24]{[/color] [color=#FF9F39]// siehe oben[/color] iChar [color=#AA6D24]=[/color] 91 [color=#AA6D24]-[/color] [color=#AA6D24]([/color]65 [color=#AA6D24]-[/color] iChar[color=#AA6D24])[/color][color=#AA6D24];[/color] [color=#AA6D24]}[/color] [color=#AA6D24]}[/color] [b][color=#1F30D7]else[/color][/b] [b][color=#1F30D7]if[/color][/b] [color=#AA6D24]([/color][color=#AA6D24]([/color]iChar [color=#AA6D24]>[/color][color=#AA6D24]=[/color] 97[color=#AA6D24])[/color] [color=#AA6D24]&[/color][color=#AA6D24]&[/color] [color=#AA6D24]([/color]iChar [color=#AA6D24]<[/color][color=#AA6D24]=[/color] 122[color=#AA6D24])[/color][color=#AA6D24])[/color] [color=#AA6D24]{[/color] [color=#FF9F39]// Wenn Kleinmbuchstabe[/color] iChar [color=#AA6D24]+[/color][color=#AA6D24]=[/color] a_iChars[color=#AA6D24];[/color] [color=#FF9F39]// Das gleiche wie mit Groß-[/color] [b][color=#1F30D7]if[/color][/b] [color=#AA6D24]([/color]iChar [color=#AA6D24]>[/color] 122[color=#AA6D24])[/color] [color=#AA6D24]{[/color] [color=#FF9F39]// buchstaben, nur in einem[/color] iChar [color=#AA6D24]=[/color] 96 [color=#AA6D24]+[/color] iChar [color=#AA6D24]-[/color] 122[color=#AA6D24];[/color] [color=#FF9F39]// anderen Zahlenraum[/color] [color=#AA6D24]}[/color] [b][color=#1F30D7]if[/color][/b] [color=#AA6D24]([/color]iChar [color=#AA6D24]<[/color] 97[color=#AA6D24])[/color] [color=#AA6D24]{[/color] iChar [color=#AA6D24]=[/color] 123 [color=#AA6D24]-[/color] [color=#AA6D24]([/color]97 [color=#AA6D24]-[/color] iChar[color=#AA6D24])[/color][color=#AA6D24];[/color] [color=#AA6D24]}[/color] [color=#AA6D24]}[/color] sRet [color=#AA6D24]+[/color][color=#AA6D24]=[/color] [b]String[/b][color=#AA6D24].[/color][b]fromCharCode[/b][color=#AA6D24]([/color]iChar[color=#AA6D24])[/color][color=#AA6D24];[/color] [color=#AA6D24]}[/color] [b][color=#1F30D7]return[/color][/b] sRet[color=#AA6D24];[/color] [color=#AA6D24]}[/color] [b]alert[/b][color=#AA6D24]([/color]caesarCode[color=#AA6D24]([/color]caesarCode[color=#AA6D24]([/color][color=#FF0000]'aBcDeF-GhIjKl'[/color][color=#AA6D24],[/color] 2[color=#AA6D24])[/color][color=#AA6D24],[/color] [color=#AA6D24]-[/color]2[color=#AA6D24])[/color][color=#AA6D24])[/color][color=#AA6D24];[/color][/color]
Ähnliche Themen
-
Download aus Result Document
Von pymy im Forum PHPAntworten: 3Letzter Beitrag: 10.07.07, 15:42 -
Verarbeitung des Query Result bei EJB 3.0 und JPA
Von Cullen im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 09.07.07, 16:51 -
PHP Result mit AJAX auswerten
Von CarnivoreCI im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 27.06.07, 12:14 -
DB result nicht Komplett
Von XeN im Forum PHPAntworten: 2Letzter Beitrag: 14.05.04, 15:19 -
Mysql Result
Von h-brock im Forum PHPAntworten: 1Letzter Beitrag: 13.04.02, 15:15





Zitieren
Login





