Patrick.Karre Geschrieben 8. Februar 2006 Geschrieben 8. Februar 2006 Hallo Forum, wenn ein Benutzer ein Kennwort eingibt, wird dies bei mir in der Datenbank abgelegt. Jetzt möchte ich aber auch, dass das Kennwort verschlüsselt wird. Wie stelle ich dies am besten an? Gibt es schon funktionen, die dies für mich machen? Gruß aus Hanau Patrick Zitieren
baba007 Geschrieben 8. Februar 2006 Geschrieben 8. Februar 2006 md5($password); erstellt eine 32 Zeichen lange Hexzahl. nicht umzukehren. Wenn PW vergessen, muss neues erstellt werden Zitieren
Patrick.Karre Geschrieben 8. Februar 2006 Autor Geschrieben 8. Februar 2006 Jetzt wo du es sagst / schreibst sehe ich die Möglichkeit das Passwort sicher zu verschlüssen. Gibt es keine Möglichkeit das Passwort wieder auszulesen? Zitieren
baba007 Geschrieben 8. Februar 2006 Geschrieben 8. Februar 2006 Jetzt wo du es sagst / schreibst sehe ich die Möglichkeit das Passwort sicher zu verschlüssen. Gibt es keine Möglichkeit das Passwort wieder auszulesen? wofür ? wenn man es umkehren könnte, wäre ein PW nicht mehr sicher ... ich glaube die umkehrung von md5 ist nur theoretisch möglich und bis dato ungeknackt. in der regel würde man BF einsetzen, aber das dauert bei einem 128bit hash und einem PW , dass aus theoretisch unendlich vielen zeichen bestehen kann Zitieren
tallman Geschrieben 8. Februar 2006 Geschrieben 8. Februar 2006 Jetzt wo du es sagst / schreibst sehe ich die Möglichkeit das Passwort sicher zu verschlüssen. Gibt es keine Möglichkeit das Passwort wieder auszulesen? ma, du liesst dann halt das verschlüsselte passwort aus und vergleichst es mit dem passwort was der benutzer eingegeben hat, dass musst du vorher nur auch nochmal verschlüsseln. wenn er das richtig eingegeben hat, sind beide hashs gleich.... Zitieren
Whatever Geschrieben 8. Februar 2006 Geschrieben 8. Februar 2006 MD5 ist nicht umzukehren da MD5 kein Verschlüsselungs- sondern ein Hash-Algorithmus ist. Egal wie lang die eingabe ist, das Hash den MD5 auswirft ist immer gleich lang. MD5 zu überwinden ist nur möglich, wenn man aus jeden möglichen Ursprungstext einen Hash erzeugt und mit dem fertigen Hash vergleicht. Nun zu der Idee ein Passwort "verschlüsselt" zu speichern. Zunächst: Alles was du selbst Programmieren kannst ist unbrauchbar, dann kannst du es auch im Klartext speichern. Es gibt zwar jede Menge sichere Verschlüsselungsmethoden, aber dazu braucht man immer einen Schlüssel. Und damit dein Script die Daten entschlüsseln könnte, bräuchte es diesen Schlüssel. Nun kann man aber davon ausgehen, dass jemand der deine Datenbank auslesen kann auch in deine Scripte reinschauen kann. Was wiederum die Verschlüsselung sinnlos macht. Die einzige Methode die sicher ist, funktioniert über Hashes (z.b. MD5). Du hasht das Passwort beim speichern in der Tabelle und vergleichst bei jedem einloggen die gehashte eingabe mit dem DB-Eintrag. Sind die gleich ist das Passwort richtig (das zwei Eingaben den selben Hash erzeugen ist seeehr, seeeehr, seeehr unwahrscheinlich und afaik ist auch kein Fall bekannt). Wenn der Benutzer sein Passwort vergessen hat, generierst du ein neues, zufälliges und schickst ihm das. Ich persönlich traue keinem Anbieter, der in der Lage ist mir mein vergessenes Passwort im Klartext zuzuschicken. Zitieren
Patrick.Karre Geschrieben 8. Februar 2006 Autor Geschrieben 8. Februar 2006 Gut, nach kurzem drüber nachdenken kam ich zu dem Schluss, wer sein Passwort vergisst, bekommt ein neues durch einen Zufallsgenereator ;-)) Zitieren
etreu Geschrieben 9. Februar 2006 Geschrieben 9. Februar 2006 Ich würde beim verschlüsseln lieber auf sha1() setzen. Macht nichts anderes als md5() nur eben sicherer. Zitieren
PuppetMaster Geschrieben 9. Februar 2006 Geschrieben 9. Februar 2006 Da du das Passwort in der DB speichern willst, würde ich einfach sagen auch die DB bzw. SQL das Verschlüsseln übernehmen zu lassen. Sieh dir in dem Zusammenhang mal AES_ENCRYPT und AES_DECRYPT im MySQL-Manual an. Zitieren
sockä Geschrieben 9. Februar 2006 Geschrieben 9. Februar 2006 Ja, das Verschlüsseln auf DB-Ebene macht Sinn. MySQL kann ja was mit MD5 anfangen und dann machst du in deinem PHP-Skript nix anderes als if( md5($eingabePasswort) == MD5_Passwort_aus_DB) // eingeloggt else // falsches Passwort ... und kannst natürlich auch was anderes als MD5 nehmen Zitieren
Patrick.Karre Geschrieben 9. Februar 2006 Autor Geschrieben 9. Februar 2006 Danke für eure Unterstützung. Ich habe mich für MD5(Kennwort) entschieden und die Passwörter bereits umgestellt. Ich möchte nur gewährleisten, dass die Passwörter nicht von jeder beliebigen Version ausgelesen werden können. Gruß aus Hanau Patrick Zitieren
oneside Geschrieben 11. Februar 2006 Geschrieben 11. Februar 2006 Danke für eure Unterstützung. Ich habe mich für MD5(Kennwort) entschieden und die Passwörter bereits umgestellt. Ich möchte nur gewährleisten, dass die Passwörter nicht von jeder beliebigen Version ausgelesen werden können. Gruß aus Hanau Patrick Deswegen werden Passwörter auch nicht im Klartext in Datenbanken abgelegt. Könnte man das verschlüsselte Passwort einfach wieder entschlüsseln, wäre das ganze ja für die Katz :beagolisc Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.