Sono nuovo a scala, devo memorizzare la password utente nei dati nel database, quindi voglio che si archivi in forma crittografata. qualcuno può riferirmi come si fa alla crittografia in scala 2.10 play framework 2.2. c'è un modo che io uso direttamente la crittografia in funzione di modello, poco prima della query di inserimento di una passwordcome memorizzare una password di crittografia in mysql in scala playframework 2.2?
risposta
io personalmente uso JBCrypt (una libreria Java). Se si desidera utilizzare che si desidera aggiungere questa riga al tuo appDependencies nel vostro Build.scala "org.mindrot" % "jbcrypt" % "0.3m"
Poi nel modello import org.mindrot.jbcrypt.BCrypt
BCrypt.hashpw("password", BCrypt.gensalt(12))
sarà hash "password", che si può quindi associare al vostro SQL inserire per il tuo utente. Per verificare una password, si recupera l'hash e si utilizza BCrypt.checkpw(password, hash)
, che restituisce true
se la password specificata è corretta.
@LimbSoup ho già menzionato in questione che sto usando play framework 2.2 e non c'è alcun file build.scala in play framework 2.2 –
@GovindSingh non c'è nulla che ti impedisca di usare Build.scala in Play 2.2, puoi usarlo o compilare. sbt, o presumibilmente entrambi se fossi così inclinato (non ho provato quest'ultimo) – virtualeyes
@ GovindSingh Sto usando Build.scala in Play 2.2. Come detto virtuale, puoi usare quello o build.sbt. –
C'è un oggetto play.api.libs.Crypto
nel quadro di gioco: http://www.playframework.com/documentation/2.1.1/api/scala/index.html#play.api.libs.Crypto$
EDIT: Come proposto dalla @ Mark Lister, si dovrebbe definitivamente dare un'occhiata à JBcrypt.
Quasi certamente non vuoi firmare la password. Vedi https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet. JBcrypt è una buona idea. –
Sì, hai ragione! –
sto scrivendo Scala/Akka e trovato la fonte java discussione e campione a
https://crackstation.net/hashing-security.htm#javasourcecode
estremamente semplice ed efficace.
Nello stesso modo in cui lo faresti in Java. – pedrofurla