私はscalaの初心者です。ユーザーパスワードをデータベースのデータベースに保存する必要があるため、暗号化された形式で保存したいと考えています。scala 2.10 play フレームワーク 2.2 での暗号化の方法を教えてもらえますか? パスワードの挿入クエリの直前に、モデル関数で暗号化を直接使用する方法はありますか
3 に答える
私は個人的に JBCrypt (Java ライブラリ) を使用しています。それを使用したい場合は、この行を Build.scala の appDependencies に追加します。"org.mindrot" % "jbcrypt" % "0.3m"
次に、モデルでimport org.mindrot.jbcrypt.BCrypt
BCrypt.hashpw("password", BCrypt.gensalt(12))
「パスワード」をハッシュし、ユーザーの SQL 挿入にバインドできます。パスワードを確認するには、ハッシュを取得して を使用します。これは、指定されたパスワードが正しい場合BCrypt.checkpw(password, hash)
に返されます。true
私はScala / Akkaを書いていて、ディスカッションとサンプルJavaソースを見つけました
https://crackstation.net/hashing-security.htm#javasourcecode
非常にシンプルで効果的です。
play.api.libs.Crypto
Play フレームワークにはオブジェクトがあります: http://www.playframework.com/documentation/2.1.1/api/scala/index.html#play.api.libs.Crypto$
編集: @Mark Lister が提案したように、JBcrypt を確認する必要があります。