Veröffentlicht 8. Februar 200619 j 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
8. Februar 200619 j md5($password); erstellt eine 32 Zeichen lange Hexzahl. nicht umzukehren. Wenn PW vergessen, muss neues erstellt werden
8. Februar 200619 j Autor 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?
8. Februar 200619 j 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
8. Februar 200619 j 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....
8. Februar 200619 j 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.
8. Februar 200619 j Autor Gut, nach kurzem drüber nachdenken kam ich zu dem Schluss, wer sein Passwort vergisst, bekommt ein neues durch einen Zufallsgenereator ;-))
9. Februar 200619 j Ich würde beim verschlüsseln lieber auf sha1() setzen. Macht nichts anderes als md5() nur eben sicherer.
9. Februar 200619 j 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.
9. Februar 200619 j 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
9. Februar 200619 j Autor 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
11. Februar 200619 j 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
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.