Jak hashować hasło w frameworku play (może za pomocą BCrypt)

Jestem trochę nowy w grze framework i hashowanie haseł. Próbowałem znaleźć jakieś rozwiązania dla haszowania moich haseł i znalazłem BCrypt. Czy uważasz, że to wystarczy, aby hashować hasła? A jeśli jest dobry, jak mogę go uruchomić w ramach play? (Używam play 2.1.3) dzięki!

Author: biesior, 2013-08-16

3 answers

Oto przykładowy projekt Java Play, który używa BCrypt do hashowania haseł, zobacz akcje newUser() i signIn ():

Https://github.com/jroper/play-demo-twitbookplus/blob/master/app/controllers/UserController.java

Możesz zrobić podobne w Scali. Podsumowując, dodaj jbycrpt do swoich zależności W Build.scala:

val appDependencies = Seq(
  "org.mindrot" % "jbcrypt" % "0.3m"
)

Następnie hashuj hasła używając tego:

String passwordHash = BCrypt.hashpw(password, BCrypt.gensalt());

I zweryfikować hasła używając tego:

BCrypt.checkpw(password, passwordHash)
 41
Author: James Roper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-15 23:01:54

BCrypt jest dobry do hashowania haseł. Użyj Silhouette i użyj bcrypt password hasher dla wtyczki do hasła.

 7
Author: Will Sargent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-12 23:11:08

Ten projekt oferuje ładny wrapper Scali wokół jbcrypt https://github.com/t3hnar/scala-bcrypt - używałem go w przeszłości i działa świetnie.

 4
Author: foomip,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-05 05:38:06