Ich verschlüssle das Benutzerpasswort und speichere es in db. Dann zum Benutzer Login, Hash-Passwort und einfaches Passwort zu vergleichen, bekomme ich crypto/bcrypt: hashedPassword is not the hash of the given password
Fehler. Was ist los mit dir ?crypto/bcrypt: hashedPassword ist nicht der Hash des angegebenen Passworts
Antwort
Ich kann nicht sagen, was ist, aber in Ihrer Vergleichsfunktion sicherstellen, dass Sie die Variablen an der richtigen Stelle haben.
bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(password))
Must be the already hashed PW^ ^Plain Text Password to compare
auch sicherzustellen, dass Sie tatsächlich etwas zu bekommen Hash, könnten Sie ein leeres Passwort bekommen, aber nicht es zu merken, da der Hash noch voll aussehen wird.
'user.Password' kommt von db, also ist es bereits Hash-Passwort. –
@MelihMucuk Sind Sie sicher, dass es das Richtige ist? Hast du versucht, den Wert zu protokollieren, bevor er gehackt wird? – Datsik
Meine Wette ist, dass user.Password
in Ihrer Register
Funktion leer ist, bevor Sie es zu encryptPassword
was zu Hashes auf leere Passwörter wie die, die Sie zur Verfügung gestellt ($2a$10$rqHJJTHsxMbtX/5ZjG1mFuWyYbUDW1PLbfwQRN0uChwes38c/0m3e
) übergeben.
Ja, Sie können dies leicht mit 'fmt.Println (bcrypt.CompareHashAndPassword ([] byte (" $ 2a $ 10 $ rqHJJTHsxMbtX/5ZjG1mFuWyYbUDW1PLbfwQRN0uChwes38c/0m3e "), [] Byte {}))' was nur 'nil' druckt. Sie sollten einen Haken bei 'encryptPassword' hinzufügen, um sicherzustellen, dass dies nicht geschieht. – djd
- 1. Verschlüsselung des Passworts
- 2. Erneute Eingabe des Passworts vor der Transaktion
- 3. Einstellung der Mindestlänge des Passworts in web2py
- 4. Temporäre URL zum Zurücksetzen des Passworts generieren
- 5. Fehler beim Zurücksetzen des Passworts
- 6. Fehler beim Zurücksetzen des Passworts
- 7. Zurücksetzen des Passworts in der Passport-lokalen Strategie in Sails.js
- 8. Erhalte den gleichen Hash-Wert bei der Verwendung von BCryptPasswordEncoder
- 9. Sichere Möglichkeiten zum Zurücksetzen des Passworts oder zum Zurückgeben des alten Passworts
- 10. Django Authentifizierungsproblem nach dem Zurücksetzen des Passworts
- 11. "temporäre" Anmeldedaten beim Zurücksetzen des Passworts?
- 12. Laravel: Zurücksetzen des Passworts ohne Umleitungsantwort
- 13. Eclipse Preference Synchronizer - Ändern des Passworts
- 14. Automatisierungsskript zum Ändern des Passworts in Selen
- 15. Wie Hash-Code an die E-Mail zum Zurücksetzen des Passworts Yii2 Basic senden?
- 16. Vergleichen des Hash-Passworts von SQLite-Datenbank mit Benutzereingabe mit BCrypt
- 17. Ausnahme zum Ändern des Passworts in ASP.NET
- 18. iterieren durch die Werte des angegebenen Schlüssels in der Scala-Hash-Map
- 19. Automatisches Eingeben des Passworts in enter-pssession
- 20. Berechnungswoche des angegebenen Datums
- 21. Position des Passworts funktionalitly in DDD
- 22. versteckten Wert des Passworts nach Formular einreichen
- 23. Opera löst nicht Zauberstab zum Speichern des Passworts aus
- 24. Spring Security - kann nach der Eingabe des ungültigen Passworts nicht einloggen
- 25. Abrufen der Datei-Handles des angegebenen Prozesses
- 26. Django + Formular zum Zurücksetzen des Passworts
- 27. Ändern des Passworts auf p12-Datei
- 28. Überprüfung des Django-Passworts in Ruby on Rails ergibt nicht übereinstimmendes Passwort
- 29. was ist der kürzeste Hash/
- 30. Der Datenleser ist nicht mit dem angegebenen Modell kompatibel
Können Sie ein Beispiel für den Inhalt von 'user.Password' angeben? – Danilo
Haben Sie die Bytes von der DB verglichen, um sicherzustellen, dass sie ordnungsgemäß aktualisiert und in keiner Weise verändert wird? – JimB
zum Beispiel, hier ist Hash-Passwort von db '$ 2a $ 10 $ rqHJJTHsxMbtX/5ZjG1mFuWyYbUDW1PLbfwQRN0uChwes38c/0m3e', dies von' 123456' generiert. Dann vergleiche ich Hash-Passwort und einfaches Passwort, das ist 123456 @ Danilo @ JimB –