"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

MD5-Verschlüsselung

jb 31.01.2003 - 17:37 794 7
Posts

jb

Here to stay
Registered: May 2000
Location: /home/noe/
Posts: 3514
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!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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
Avatar
Registered: Feb 2001
Location: Undercity
Posts: 426
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
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
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
Registered: May 2000
Location: /home/noe/
Posts: 3514
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
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
wenn vom original-vb nichts verändert wurde - lt. changelogs vom vb md5

Philipp

Here to stay
Registered: Jul 2001
Location: Wien
Posts: 1922
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
Registered: May 2000
Location: /home/noe/
Posts: 3514
Ok danke, werd also mit MD5 "verschlüsseln" wenn man das so nennen kann.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz