Jestem trochę nowy, aby zagrać w hash frameworku i hasła. Próbowałem znaleźć jakieś rozwiązanie dla haszowania moich haseł i znalazłem BCrypt. Czy uważasz, że to wystarczająco dobre, aby mieszać hasła. A jeśli jest dobry, jak mogę go uruchomić w strukturze gry? (Używam gry 2.1.3) Dzięki!Jak hash hasło w strukturze gry (może z BCrypt)
21
A
Odpowiedz
40
Oto przykładowy projekt Gra Java pisałem, że używa BCrypt hash hasła, patrz newuser() i signin() czynności:
https://github.com/jroper/play-demo-twitbookplus/blob/master/app/controllers/UserController.java
Można zrobić podobne w Scala. Podsumowując, należy dodać jbycrpt do zależnościami w Build.scala:
val appDependencies = Seq(
"org.mindrot" % "jbcrypt" % "0.3m"
)
Następnie hash hasła, za pomocą tego:
String passwordHash = BCrypt.hashpw(password, BCrypt.gensalt());
i weryfikacji za pomocą tego hasła:
BCrypt.checkpw(password, passwordHash)
6
BCrypt jest dobre dla hashujące hasła. Użyj Silhouette i użyj BCrypt password hasher dla wtyczki hasła.
3
Ten projekt oferuje ładne opakowanie scala wokół jbcrypt https://github.com/t3hnar/scala-bcrypt - użyłem go w przeszłości i działa świetnie.
jeśli BCrypt tworzy skrót za pomocą soli, musisz dodać sól do modelu użytkownika, prawda? W twoim przykładzie nie ma takiego pola dla "soli". –
Nie, BCrypt zawiera zwykłą sól w wartości, którą wyprowadza. Nie jestem w 100% pewien formatu, ale byłoby to coś w rodzaju "randomsalthere: saltedhashhere". Musi więc najpierw przeanalizować wartość, wyodrębnić sól i mieszanie, a następnie ma zarówno hash, jak i sól do sprawdzania haseł. –