PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: Integrierte Passwortverschlüsselung?


tomtom
2004-09-09, 17:16:46
Hi Leute,

Ich wollte mal fragen obs in pHP ne Funktion zur Passwortverschlüselung(ne ganz einfache) gibt die mir das PW automatisch verschlüsselt sodass ich es in die Datenbank schreiben kann?

Oder muss ich mir selbst eine schreiben(wäre kein Problem, allerdings fehlt mir die Zeit dazu)??!!

Vielen Dank, MFG
terminator2k3

Nase
2004-09-09, 17:30:22
Die Funktion heisst md5().

$passwort = 'Moo';

$verschluesselt = md5($passwort);

ravage
2004-09-09, 17:30:29
http://www.devmag.net/webprog/php_verschluesselung.htm

Google, gleich der erste Treffer.

tomtom
2004-09-09, 18:21:14
Wow, so kurz? THX....werds gleich machen
MFG

JTHawK
2004-09-09, 18:26:50
Du kannst das PW aber nicht mehr entschlüsseln. Also musst du zum paswordvergleich das pw eingeben lassen und dann den md5 wert mit dem in der datenbank vergleichen,

tomtom
2004-09-09, 18:45:57
Jo hab ich auch so gemacht.....auch wenns ginge: Andersrum wärs vile zu umständlich...Trotzdem Danke für den Hinweis

MFG

tomtom
2004-09-10, 14:19:04
Jetzt hab ich aber ein neues Problem...die Passwortverschlüsselung funktioniert super, bei Login und Registrierung ist alles ok.

Ich habe aber zusätzlich ein Formular zur Passwortanforderung. Dabei gibt der User seinen Usernamen ein und es wird ne E-Mail an die in der Datenbank beim jeweiligen Usernamen angeführten E-Mail-Adresse mit dem Passwort geschickt. Leider steht das Passwort jetzt verschlüsselt drin... Wenn man MD5 nicht entschlüsseln kann, wie mach ich das dann?

Hat jemand nen Denkansatz oder eine Lösung dafür?

THX schon mal!
MFG

Nase
2004-09-10, 14:22:33
Nomal muss der Benutzer dann die Mail bestätigen. Also so, dass er auch das Passwort angefordert hat. Daraufhin wird ein neues Passwort gesetzt und dem Benutzer zugeschickt. Da der Benutzer sich registrieren konnte, gibt es sicherlich auch die Möglichkeit für ihn, diese automatisch gesetzte Passwort wieder zu ändern.

tomtom
2004-09-10, 14:36:36
Das Passwort setzt sich der User bei der Registrierung selbst, es wird dann MD5-verschlüsselt und in die Datenbank eingetragen...
Wenn sich der User einloggt wird seine Passworteingabe ebenfalls verschlüsselt und mit der in der Datenbank verglichen....

Und wenn ein User sein Passwort anfordert, muss er nur seinen Usernamen eingeben, daraufhin wird das Passwort an die Adresse geschickt die bei dem User in der DB eingetragen ist - und dieses Passwort ist eben verschlüsselt.

Der User braucht gar nix bestätigen ;)

Nase
2004-09-10, 14:44:28
Schon klar.

Allerdings kannst du ihm nicht das md5-Passwort geben. Damit kann er reichlich wenig anfangen. Deshalb gibt es nur die Möglichkeit, ein neues Passwort in der Datenbank zu setzen und dem Benutzer dieses zukommen zulassen. Und aus diesem Grund würde ich erst eine Bestätigungsmail verschicken, damit nicht jeder kommen kann und einfach irgendeinen Benutzernamen in das Formular eintippen kann, woraufhin direkt das Passwort geändert wird.

Alternativ kannst du dir auch eine Funktion schreiben, die das md5-Passwort wieder entschlüsselt. Über den Sinn oder Unsinn müssen wir uns aber nicht unterhalten, oder?

MadMan2k
2004-09-10, 15:00:01
Alternativ kannst du dir auch eine Funktion schreiben, die das md5-Passwort wieder entschlüsselt.
md5 kann man nicht entschlüsseln, sonst könnte man ja aus dem 32 stelligen Code eine Gigabyte große Datei wiederherstellen..

Nase
2004-09-10, 15:02:24
md5 kann man nicht entschlüsseln, sonst könnte man ja aus dem 32 stelligen Code eine Gigabyte große Datei wiederherstellen..
Unmöglich würde ich es aber nicht nennen.

tomtom
2004-09-10, 15:37:02
Das wird wieder viel Arbeit^^
Aber anders als so mit der Bestätigungsmail wirds wohl kaum gehen! Kann ich da per Zufallsgenerator ein Passwort erzeugen? Wenn ja, wie?

Ich werd das dann so machen. Wenn jemand sein PW vergisst und es anfordert, soll er(in dem er auf nen Aktivierungslink in seiner Mail klickt) Bestätigen dass er ein neues, generiertes kriegt. Wenns erzeugt wurde, kriegt er ne neue Mail mit dem neuen PW. Das darf er dann sowieso später wieder in seinem Profil ändern....

Danke an Alle...

Aqualon
2004-09-10, 16:00:41
Du kannst die Passwörter auch einfach im Klartext speichern. Der Sinn der Speicherung als md5-Hashwert ist mir auch nicht klar. Du als Datenbankadmin kannst eh alle Daten sehen, also interessiert dich das Passwort überhaupt nicht und etwaige Angreifer, die an die md5-Werte kommen, können auch den Rest auslesen bzw. die Passwörter gegen eigene austauschen.

Aber mir kann gerne jemand erklären, wie md5-chiffrierte Passwörter etwas zur Sicherheit beitragen sollen.

Aqua

Nase
2004-09-10, 16:14:26
Aber mir kann gerne jemand erklären, wie md5-chiffrierte Passwörter etwas zur Sicherheit beitragen sollen.

Aqua
Vielleicht sogar zum Schutz vor dem Admin selbst. Immerhin gibt man ja ein Passwort ein, das man sich selbst irgendwie ausgedacht hat. Und da viele Menschen ein und dasselbe Passwort an vielen unterschiedlichen Stellen benutzen, wäre es durchaus möglich, dieses "gegen" sie einzusetzen und so an Informationen zu kommen, die den Admin überhaupt nichts angehen.
Und ausserdem sieht das irgendwie professioneller aus :).

tomtom
2004-09-10, 16:22:34
Es ist so, dass diese Seite "nur" ne Klassenhomepage wird(mit großer Funktionalität) und ich wurde bereits von mehreren Klassenkameraden gebeten, Ihre Passwörter zu verschlüsseln - denn obwohl mir die meisten auch vertrauen - verwenden die Ihre Passwörter fast überall(also dasselbe).

Außerdem können sich auch Lehrer anmelden und ich glaube nicht, dass es für mich von Vorteil wäre, wenn die wüssten dass ich deren PWs sehe

Deshalb isses verschlüsselt!

MFG

Aqualon
2004-09-10, 18:31:08
Ok, der Faulheit des Benutzers überall dasselbe Passwort zu verwenden muss man natürlich vorbeugen ;)

Aqua

MadMan2k
2004-09-11, 08:18:15
Unmöglich würde ich es aber nicht nennen.
geschafft hat es jedenfalls noch niemand... :)
http://de.wikipedia.org/wiki/MD5

Nase
2004-09-11, 09:29:17
geschafft hat es jedenfalls noch niemand... :)
http://de.wikipedia.org/wiki/MD5
Ist ja auch alles unsinnig. Die Rechenleistung, die dafür benötigt wird, damit man das Ergebnis in einem akzeptablen Zeitraum erreicht, steht in keinem Verhältnis zum Nutzen.
Wüsste gerne mal, was die Chinesen da nun genau gemacht haben, um den Schlüssel innerhalb von 5 Minuten zu knacken. Wahrscheinlich war der unverschlüsselte Wert nur zwei Zeichen lang.

Aqualon
2004-09-11, 09:32:53
Ist ja auch alles unsinnig. Die Rechenleistung, die dafür benötigt wird, damit man das Ergebnis in einem akzeptablen Zeitraum erreicht, steht in keinem Verhältnis zum Nutzen.
Wüsste gerne mal, was die Chinesen da nun genau gemacht haben, um den Schlüssel innerhalb von 5 Minuten zu knacken. Wahrscheinlich war der unverschlüsselte Wert nur zwei Zeichen lang.
So wie ich das verstanden habe, ging es da doch um eine Kollision, also 2 verschiedene Zeichenketten, die denselben MD5-Wert ergeben. Das knacken von md5-Schlüsseln bis 5 oder 6 Zeichen macht man schnell in jeder Kaffeepause.

Aqua

Nase
2004-09-11, 09:34:47
So wie ich das verstanden habe, ging es da doch um eine Kollision, also 2 verschiedene Zeichenketten, die denselben MD5-Wert ergeben. Das knacken von md5-Schlüsseln bis 5 oder 6 Zeichen macht man schnell in jeder Kaffeepause.

Aqua
Eine andere Möglichkeit wird es auch nicht geben, als ein Passwort zu generieren, dieses zu verschlüsseln und mit dem gespeicherten Passwort zu vergleichen ;).