一个我无法弄清楚的简单问题(谷歌或文档中没有 - 也许很明显,但对我来说不是)。我在 Play 中使用 slick!Framework 2.1,我想在数据库中保存一些敏感的用户信息。我想在每次要保存数据时加密数据(以及在内存中,当在 a 中构造时case class
)并在每次需要时解密数据。数据是 OAuth access_token
。
这是我的(简化的)代码:
case class User(id: Option[Int] = None,
name: String,
email: String,
oauthToken: Option[String] = None)
物体:
object Users extends Table[User]("User") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def name = column[String]("name")
def email = column[String]("email")
def oauthToken = column[String]("oauthToken", O.Nullable)
def * = id.? ~
name ~
email ~
oauthToken.? <> (User, User.unapply _)
}
我想要做的是在oauthToken
每次User
构造案例类时加密。并在每次user.oauthToken
调用时对其进行解密。目前我最好的猜测是更改 的 getter 和 setter oauthToken
,但据我所知,在 Scala 中我们不能真正做到这一点(更不用说对 Slick 的影响了)。
我应该怎么做才能在现场进行加密/解密?
之前谢谢。