Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

md5($password);

erstellt eine 32 Zeichen lange Hexzahl.

nicht umzukehren. Wenn PW vergessen, muss neues erstellt werden

Jetzt wo du es sagst / schreibst :rolleyes: 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 ;)

Jetzt wo du es sagst / schreibst :rolleyes: 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....

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.

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. :)

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 ;)

  • 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

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.