Als Webentwickler ist Ihnen sicher schon einmal der Begriff Passwort-Hashing begegnet mindestens einmal. Lassen Sie uns schnell verstehen, was Passwort-Hashing ist und warum wir es überhaupt brauchen.
Was ist Passwort-Hashing?
Passwort-Hashing ist der Prozess der Verschlüsselung des Passworts eines Benutzers, bevor es in einer Datenbank gespeichert wird. Die Verschlüsselung ist einseitig, und einmal gehashte Passwörter können nicht in ihren ursprünglichen Textwert entschlüsselt werden.
Warum müssen wir Passwörter hashen?
Passwort-Hashing ist in der heutigen Zeit extrem wichtig geworden. Stellen Sie sich ein Szenario vor, in dem Ihre Datenbank gehackt wird und nun alle Details Ihrer Benutzer dem Hacker ausgesetzt sind. Der Hacker hat Zugriff auf alle Ihre Daten und das Passwort des Benutzers.
Jetzt müssen Sie sich fragen, was es bringt, die Passwörter zu verschlüsseln, wenn die Datenbank selbst gehackt werden kann. Nun, die Antwort ist ziemlich einfach. Ein durchschnittlicher Benutzer verwendet ein einziges Passwort für mehr oder weniger jede Website. Wenn der Hacker also Zugriff auf das Passwort des Benutzers auf Ihrer Website erhält, kann er/sie auch auf andere Konten des Benutzers auf anderen Websites zugreifen. Außerdem werden diese Passwörter oft auf dem Schwarzmarkt verkauft. Sie können verwendet werden, um verschiedene Passwort-Wörterbücher usw. zu erstellen.
Wie werden Passwörter gehasht?
Passwort-Hashing erfolgt in der Regel mit Hilfe von Verschlüsselungsalgorithmen. Bcrypt ist eine der am häufigsten verwendeten Hashing-Funktionen, die eine Vielzahl von Algorithmen verwenden kann. Das Gute an Bcrypt oder Hashing im Allgemeinen ist, dass Sie die Länge eines Hashs bereits kennen. Alle Passwortfelder in Ihrer Tabelle haben also die gleiche Länge. Um Passwörter bei der Anmeldung zu verifizieren, muss das gesendete Passwort gehasht werden und der Hash-Wert sollte mit dem Wert in den Datensätzen übereinstimmen. Dieser ganze Prozess ist langsam und hilft wirklich gegen Brute-Force-Angriffe.