Passwörter sicher speichern in PHP: Hashing versus Verschlüsselung
Wie kann man in PHP Passwörter sicher speichern und warum kann man Hashes nicht entschlüsseln?
Ah, das leidige Thema der Passwortsicherheit - ein Hauch von Mystik, nicht wahr? Nun, lieber interessierter Entdecker des digitalen Ozeans wenn es um das Speichern von Passwörtern in PHP geht muss man zwischen Hashing und Verschlüsselung unterscheiden.
Wenn du ein Passwort in PHP "sicher" speichern möchtest benutzt du am besten Hashfunktionen ebenso wie das beliebte password_hash in PHP. Doch hier ist der Clou: Hashes sind Einwegfunktionen die nicht rückgängig gemacht werden können. Das heißt, du kannst ein Hash nicht einfach entschlüsseln um das ursprüngliche Passwort wiederzuerlangen. Das ist ebenfalls gut so ´ denn das Konzept von password_hash zielt darauf ab ` Passwörter eben nicht in Klartext zu speichern. Stattdessen speichert man den Hashwert des Passworts und vergleicht diesen bei der Passworteingabe erneut verschlüsselt mit dem gespeicherten Hashwert.
Warum? Weil Passwörter sensible Informationen sind und nicht entschlüsselt werden dürfen. Es mag verlockend sein jedoch es ist nicht erlaubt und gefährdet die Sicherheit der Nutzer. Stattdessen kannst du Inhalte verschlüsseln und wieder entschlüsseln, beispielsweise mit OpenSSL Funktionen in PHP.
Also, mein neugieriger Mitstreiter, wenn es um Passwortsicherheit geht, sei klug wie ein Eule: Hash deine Passwörter sicher und gib Versuchungen sie zu entschlüsseln keine Chance. Stattdessen nutze Verschlüsselung für andere Inhalte und schütze die digitale Schatzkiste deiner Nutzer mit den richtigen Werkzeugen.
Wenn du ein Passwort in PHP "sicher" speichern möchtest benutzt du am besten Hashfunktionen ebenso wie das beliebte password_hash in PHP. Doch hier ist der Clou: Hashes sind Einwegfunktionen die nicht rückgängig gemacht werden können. Das heißt, du kannst ein Hash nicht einfach entschlüsseln um das ursprüngliche Passwort wiederzuerlangen. Das ist ebenfalls gut so ´ denn das Konzept von password_hash zielt darauf ab ` Passwörter eben nicht in Klartext zu speichern. Stattdessen speichert man den Hashwert des Passworts und vergleicht diesen bei der Passworteingabe erneut verschlüsselt mit dem gespeicherten Hashwert.
Warum? Weil Passwörter sensible Informationen sind und nicht entschlüsselt werden dürfen. Es mag verlockend sein jedoch es ist nicht erlaubt und gefährdet die Sicherheit der Nutzer. Stattdessen kannst du Inhalte verschlüsseln und wieder entschlüsseln, beispielsweise mit OpenSSL Funktionen in PHP.
Also, mein neugieriger Mitstreiter, wenn es um Passwortsicherheit geht, sei klug wie ein Eule: Hash deine Passwörter sicher und gib Versuchungen sie zu entschlüsseln keine Chance. Stattdessen nutze Verschlüsselung für andere Inhalte und schütze die digitale Schatzkiste deiner Nutzer mit den richtigen Werkzeugen.