Wenn ich eine Hash-Funktion verwende, um die Passwörter meiner Benutzer zu verschlüsseln, um sie in einer Datenbank zu speichern, gibt es dann nicht unendlich viele richtige Passwörter? Weil mehrere Strings den gleichen Hash erzeugen können, oder? Ist das überhaupt sicher?Password-Hashs: unendlich viele richtige Passwörter?
Antwort
Sie haben Recht. Da Hashes in der Regel kürzer sind als die Daten, die sie darstellen, gibt es Zeiten, in denen zwei verschiedene Eingaben denselben Hashwert erzeugen. Wir nennen dies eine Hash-Kollision. Um die Chancen zu verringern, wählen Sie einen besseren Hash-Algorithmus. Hinweis der Standard für das, was als ein guter Hash-Algorithmus angesehen wird, ändert sich immer, überprüfen Sie this S.O. Post.
Es ist nicht sicher, einfache Hashes aus einem anderen Grund in Ihrer Datenbank zu speichern. Es gibt Online-Listen von abgeschlossenen Hashes mit gängigen Hash-Algorithmen. Sie können also eine dieser Listen (eine Rainbow-Tabelle genannt) und die Hash-Passwörter in Ihrer Datenbank verwenden und dann herausfinden, welche Hashes mit welchen Passwörtern übereinstimmen, indem Sie einen einfachen Blick in die Rainbow-Tabelle werfen.
Da viele Benutzer eines der häufigsten schlechten Passwörter (z. B. QWERTY) wählen, ist dies ein großes Problem. Die Lösung dafür heißt Hash und Salz. Wo Sie vor dem Hashing zunächst eine große zufällige Zeichenkette zu Ihrem Passwort hinzufügen. Das bedeutet, dass sogar zwei gleiche Passwörter zu unterschiedlichen Hashwerten in Ihrer Datenbank führen. Dies ist besser erklärt here und here.
Im Allgemeinen ist es eine schlechte Idee, diesen Code selbst zu schreiben. Versuchen Sie, sich mit einem anderen Dienst wie Facebook oder Google zu authentifizieren. Ihr Code wird wahrscheinlich besser getestet und entworfen als alles, was ein einzelner Entwickler mitbringen könnte.
- 1. Unendlich viele einzigartige generierte Variablen, python
- 2. Laden Sie unendlich viele Artikel (Lazy Load)
- 3. Wie erstellt man unendlich viele Listen in Haskell?
- 4. iOS/Swift | Unendlich viele Ansichten: ScrollView oder CollectionView?
- 5. UI Grid nur letzten Datensatz viele Male auf unendlich scroll
- 6. Hibernate einfach eine zu viele Abfrage unendlich Abfragen
- 7. Verschlüsselnde Passwörter
- 8. Linie von -unendlich bis unendlich mit ggplot2?
- 9. Wie sichere Passwörter auf Android sicher speichern?
- 10. VBA mehrere Passwörter Excel
- 11. Hash-Passwörter in MySQL speichern
- 12. Array unendlich erweitern
- 13. journal.Reader unendlich
- 14. Windows kompatible Passwörter in Bash
- 15. Unendlich scrollen Genexus SD
- 16. HBase-Spaltenhistorie auf unendlich setzen
- 17. sicherste Weg Passwörter Hash
- 18. hebräische Passwörter auf WinXP
- 19. rehash Passwörter in fpass
- 20. Ich hasse Passwörter richtig?
- 21. Passwörter und Delphi TZipFile
- 22. Testing gemeinsame Passwörter
- 23. Hash-Passwörter vergleichen
- 24. Mysql-Proxy Klartext Passwörter
- 25. Notepad ++ regex mehrere Passwörter?
- 26. CakePHP 3 Passwörter zurücksetzen
- 27. Hash-Passwörter in Java
- 28. JavaScript Passwörter passen
- 29. CakePHP 3 - Vergleichen Passwörter
- 30. tsql- starke Passwörter
Dies ist keine offizielle Dokumentation und ich bin kein Sicherheitsexperte, aber ich habe letztes Jahr mehr darüber geschrieben. Schau es dir an, wenn du [hier] (https://michaelhancock.github.io/Hash-and-Salt/index.html) magst. Ich hoffe es hilft –