Moin,
Das ist nicht absolut wasserdicht, aber doch wohl ganz tauglich ?
Hmm, wofür soll es taugen? Als Lacher zwischendurch? Sicherlich. Als schlechtes Beispiel? Ganz bestimmt. Zur Sicherung der Übertragung? Absolut nicht.
Definiere doch mal bitte ganz genau was für eine Art von Angriffen du abwenden möchtest, inwiefern diese Angriffsarten eventuell relevant sind und vor allem wie deine Maßnahmen geeignet wären diese Angriffe abzuwenden. Dir wird dann auffallen, dass es genau gar nichts bringt, wenn du den Schlüssel zur 'Verschlüsselung' über den selben Kanal (HTTP-Verbindung zwischen Browser und Server über das Internet) überträgst, dem du keine unverschlüsselten Daten anvertrauen wolltest. Dass du noch ganz andere Probleme bekommst, wenn du keine echten Zufallszahlen als Schlüssel einsetzt, ist dann eher noch zweitrangig.
Benutze doch einfach existierende, etablierte und von allen möglichen Menschen untersuchte Kryptosysteme. Sicherlich baut sich jeder der sich mit Programmierung beschäftigt einmal in seinen Anfangszeiten ein eigenes 'Verschlüsselungs'system (ich bin da keine Ausnahme), aber die werden regelmäßig von erfahreneren Kryptographen in der Luft zerrissen und sollten nicht ohne weitere Untersuchung auf die Öffentlichkeit losgelassen werden.
Für deinen Einsatzzweck kommen schon mal keine Algorithmen mit einem Schlüssel zum Ver- und Entschlüsseln in Frage, da du den Schlüssel zuvor über einen sicheren Kanal übertragen müsstest. Bleibt im Wesentlichen noch ein Diffie/Hellman key exchange (und dann doch wieder ein symmetrischer Algorithmus) oder einer der vielen public key-Algorithmen. Da mir keine Implementierung von einem davon in JavaScript bekannt ist und du wahrscheinlich keine schreiben willst: Nimm HTTPS.
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~