MD5-Verschlüsselung
jb 31.01.2003 - 17:37 794 7
jb
Here to stay
|
Situation: User soll sich in Paßwortgeschützen Bereich einloggen können, sein Paßwort ändern, irgendwas anschauen und auch wiederausloggen können. Paßwort soll in MySQL Datenbank gespeichert werden (verschlüsselt). Verschlüsselung wird mit PHP-Script gemacht.
Nun die Frage: wie gut ist MD5 für die Verschlüsslung von Paßwörtern, ist das für meinen Zweck brauchbar?
|
atrox
in fairy dust... I trust!
|
md5 ist narütlich nur eine hash-funktion und keine verschlüsselung.
du kannst md5 in diesem zusammenhang an vielen stellen verwenden... als chellenge-response für die passworteingabe (dann brauchst auch eine javascript-version von md5 - gibts alles im netz). für sessions-id, zum abspeichern des passworts in der datenbank...
mysql bietet übrigens auch einen eigene password-hash funktion "password()" - ist aber glaub ich DES basierend ?
|
mad-mat
Addicted
|
wennst beim anlegen des Users INSERT INTO `usertable` ( `ID` , `NAME` , `PASSWORD` ) VALUES ( '', 'user1', PASSWORD( 'blabla' ) ); verwendest, schaut blablabla dann im datensatz so aus: 71e5e1e45222b9c4 (die oben genannte hash funktion)
edit: weiters
dann erzeugst eine session-variable am server, die den user gegenüber dem script als richtig angemeldet authentisiert.... im mysql die richtigen zugriffsrechte für den user vergeben... session variable killen, wenn der client nimmer connected ist...
die verwendeten seiten sollten alle die sagma mal "authenticate.php" beinhalten (include), die immer auf die session variable checkt, sonst den browser ans login schickt
Bearbeitet von mad-mat am 31.01.2003, 17:56
|
noledge
CWNE #540
|
wennst die passwörter md5 verhasht abspeichern willst - für den einsatzzweck vollkommen in ordnung.
da md5 praktisch eine "einmalverschlüselung" ist, kannst es nimmer entschlüsseln, also musst das eingegebene passwort vom login auch md5-verhashen und dann mit dem hash in der db vergleichen - stimmen sie überein, ist das passwort korrekt.
edit: die chance, dass 2 unterschiedliche strings den selben hash erzeugen (ohne brute force) ist praktisch 0.
dennoch ist md5 nicht 100%ig sicher, wenn jemand auf die hashes zugriff hat (sollte aber normal eh nicht sein.) in dem fall würd sich SHA (secure hash algorithm) eignen - musst aber schauen, ob das unterstützt wird.
|
jb
Here to stay
|
Das mit Session-ID usw heb ich mir für später auf, einstweilen reicht es den User nur zu erkennen und das eingegebene PW mit dem in der DB zu vergleichen. Daß es eine Einmal-Verschlüsselung ist ist mir bewust... Wie wird eigentlich hier im Forum das Paßwort verschlüsselt???
|
noledge
CWNE #540
|
wenn vom original-vb nichts verändert wurde - lt. changelogs vom vb md5
|
Philipp
Here to stay
|
Nahezu alle PHP Applikationen verwenden MD5 zum verschlüsseln.
Die anderen PHP Scripts verwenden meistens:
1) Keine Verschlüsselung. Selbst bei vB < 2.2.0 waren die Passwörter nicht verschlüsselt. 2) crypt(). Ingesamt schlechter und inkompatibler als MD5.
|
jb
Here to stay
|
Ok danke, werd also mit MD5 "verschlüsseln" wenn man das so nennen kann.
|