hallo miteinander auf-die-zeit-guck nun, ich hab urlaub - es wär nicht so, dass ich immer so lange auf / on bleibe
nunja, smalltalk beiseite
Also, ich hab im moment browserseitig ne verschlüsselung, ungefähr so:
name & passwort => encodeURIComponent => MD5() => key
inhalt => blowfish (ahnand von key) => Wert
Nun wird der Wert zum Server gesendet (AJAX), der das dann entsprechend entschlüsselt.
Nun, das funktioniert manchmal naja, zumindest fast, wenn es „funktioniert“ hat es am ende noch n paar spaces. ansonsten sind da wirre zeichen, wo eigentlich Text (bestehend aus kleinbuchstaben) sein sollte…
Nun, ich dachte mir, es könnte an der JS implementation von md5 liegen… die hats mit sonderzeichen überhaupt nicht gut, deshalb auch das encodeURIComponent… Nur leider scheinst nicht an dem zu liegen…
Die Blowfish Implementierung hab ich für PHP vom selben ort, wie die für JS…
wenn ich serverseitig die spaces wegtrimme, ist die wahrscheinlichkeit höher, dass das ergebnis der entschlüsselung n wirrwarr ist.
Das ist vermutlich alles für mich zu hoch, trotzdem hatte ich einen ähnlichen Fall. (Zumindest glaube ich das.) Übergibst du die Parameter per GET? Da hatte ich ein ähnliches Problem. Die Lösung war, den Parameter mit Javascript escape() zu behandeln, und bei der Auswertung urldecode() mit PHP zu benutzen.
Falls das Problem bei md5 liegt, keine Ahnung. Wollte nur schreiben was mir widerfahren ist
Hab da was bezüglich MD5 gefunden… war mir nicht sicher darum hab ichs nochmal gegooglet
[quote]Was ist md5?
Bei md5 handelt es sich um einen Hash-Algorithmus. Mit Hash-Algorithmen kann man von beliebig langen Text/Dateien einen Hash-Wert ermitteln, eine Art Fingerabdruck. Dieser Fingerabdruck ist immer gleich lang (bei md5 128 Bit), und die selbe Datei/Text ergibt den gleichen Fingerabdruck. Sobald sich im Text nur ein Zeichen ändert (auf Groß- und Kleinschreibung wird geachtet), sieht der Fingerabdruck komplett anders aus.
Das Besondere an dem Fingerabdruck/Hash-Wert ist, so ist es zumindest noch bei md5, dass man einen Hash-Wert nicht wieder in den Text umwandeln kann. Sprich, man kann so einen Hash-Wert nicht wieder ‘entschlüsseln’.[/quote]
Gib doch mal den Link zu den implementationen, damit man sich es mal anschauen kann.
Ansonsten:
Wenn es dir nur darum geht ein einigermaßen sicheren Login zu gestalten, probier mal bekannte techniken wie die Digest Authentication. (aber ist was anderes was du vorhast, wie es ausschaut)
Hast du auch eventuelle Unterschiede im Zeichensatz beachtet? Z.B. werden bei UTF-8 die Buchstaben anders codiert als bei Latin1 (ISO irgendwas). Daher kommt auch ein anderer Hash raus, da dieser auf Byte- und nicht auf Buchstabenebene arbeitet.
Danke Mgier, dein Beitrag hat mich auf die Idee gebracht, zu analysieren, welche Zeichen im verschlüsselten Text vorhanden sind, und wie dann die Reaktion vom Server ist. Fakt ist, sind Leerschläge enthalten funktioniert es nicht, aber slashes behindern die situation nicht… Ich werd mir das Morgen nochmal anschauen, schliesslich wird ein Leerzeichen mit + codiert, wo es aber warscheinlich - aus sicht von php - %20 sein sollten
@Mr.Generation: der md5-Hash soll ja auch nicht entschlüsselt werden, der sollte dem Server bereits bekannt sein (und deshalb auch nicht übermittelt werden), und zum entschlüsseln als Schlüssel verwendet werden
@balmung: es ist noch nicht im Netz
Es ist aber etwas ähnliches
@progandy: iso-8859-1?
Nein, ich habe alles auf UTF-8 gestellt
Genau das Problem mit den Leerzeichen hatte ich auch, wo eben wie gesagt escape() bei javascript und urldecode() bei php geholfen haben. (da wurde das auch schön in %20 umgewandelt)
Leerzeichen …
jedenfalls hab ich das jetzt mit escape codiert und mit rawurldecode decodiert, und nun funktionierts (fraglich nur, wo da die Leerzeichen am schluss herkommen )
Naja, danke euch allen , (auch wenn ich schon selber (bei anderen Projekten) auf diese Lösung gekommen bin )