Ich bin neu bei Scala, ich muss Benutzer-Passwort in Daten in der Datenbank speichern, also möchte ich, dass es in einer verschlüsselten Form speichert. kann mir jemand über die Verschlüsselung in Scala 2.10 play frame 2.2 verweisen. gibt es eine Möglichkeit, dass ich die Verschlüsselung direkt in der Modellfunktion verwende, kurz bevor die Abfrage des Passworts eingefügt wirdWie speichert man ein Verschlüsselungs-Passwort in MySQL in Scala playframework 2.2?
Antwort
Ich persönlich benutze JBCrypt (eine Java-Bibliothek). Wenn Sie möchten, verwenden, dass Sie diese Zeile in appDependencies in Ihrem Build.scala "org.mindrot" % "jbcrypt" % "0.3m"
Dann in Ihrem Modell hinzufügen würde import org.mindrot.jbcrypt.BCrypt
BCrypt.hashpw("password", BCrypt.gensalt(12))
wird hash „Passwort“, die Sie dann zu Ihrem SQL binden können einfügen für Ihren Benutzer. Um ein Passwort zu überprüfen, würden Sie den Hash abrufen und BCrypt.checkpw(password, hash)
verwenden, die true
zurückgibt, wenn das angegebene Kennwort korrekt ist.
@LimbSoup Ich erwähne bereits in Frage, dass ich play framework 2.2 und es gibt keine build.scala-Datei im play framework 2.2 –
@GovindSingh gibt es nichts, das Sie daran hindert, eine Build.scala in Play 2.2 zu verwenden, kann das verwenden oder bauen. sbt, oder vermutlich beide, wenn Sie so geneigt waren (haben Sie das letzte nicht versucht) – virtualeyes
@GovindSingh Ich benutze Build.scala in Play 2.2. Wie virtualayes sagte, können Sie entweder das oder build.sbt verwenden. –
Es ist ein play.api.libs.Crypto
Objekt im Play-Framework: http://www.playframework.com/documentation/2.1.1/api/scala/index.html#play.api.libs.Crypto$
EDIT: Wie @ Mark Lister vorgeschlagen, sollten Sie definitiv einen Blick à JBcrypt nehmen.
Sie wollen fast sicher nicht das Passwort signieren. Siehe https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet. JBcrypt ist eine gute Idee. –
Ja, du hast Recht! –
Ich schreibe Scala/Akka und fand die Diskussion und Beispiel-Java-Quelle bei
https://crackstation.net/hashing-security.htm#javasourcecode
extrem einfach und effektiv.
So wie Sie es in Java tun würden. – pedrofurla