Sono un po 'nuovo per giocare al hashing di framework e password. Ho provato a trovare alcune soluzioni per l'hashing delle mie password e ho trovato BCrypt. Pensi che sia abbastanza buono per le password di hashing. E se è buono, come posso farlo funzionare nel framework di gioco? (Sto usando il gioco 2.1.3) Grazie!Come hash password nel framework di gioco (forse con BCrypt)
21
A
risposta
40
Ecco un progetto di gioco Java di esempio ho scritto che utilizza bcrypt di hash delle password, vedere le azioni newUser() e signin():
https://github.com/jroper/play-demo-twitbookplus/blob/master/app/controllers/UserController.java
Si può fare simile a Scala. Per riassumere, aggiungi jbycrpt alle tue dipendenze in Build.scala:
val appDependencies = Seq(
"org.mindrot" % "jbcrypt" % "0.3m"
)
le password hash Poi utilizza questo:
String passwordHash = BCrypt.hashpw(password, BCrypt.gensalt());
e verificare le password usando questo:
BCrypt.checkpw(password, passwordHash)
6
bcrypt è un bene per password di hashing. Usa Silhouette e usa il BCrypt password hasher per il tuo plug-in di password.
3
Questo progetto offre una bella scala wrapper attorno a jbcrypt https://github.com/t3hnar/scala-bcrypt - l'ho usata in passato e funziona benissimo.
se BCrypt crea un hash utilizzando salt, è necessario aggiungere un salt al modello User, non è vero? Nel tuo esempio non esiste un campo per "sale". –
No, BCrypt include il sale normale nel valore che emette. Non sono sicuro al 100% del formato, ma sarebbe qualcosa sulla falsariga di "randomsalthere: saltedhashhere". Quindi, per prima cosa deve analizzare il valore, estrarre il sale e l'hash, e quindi ha sia l'hash che il sale per eseguire i controlli della password. –