【发布时间】:2015-05-03 02:11:32
【问题描述】:
我目前正在玩 Grails,并且正在制作一个基本的登录和会话系统(只是为了好玩)。
我目前在网页上有一个表单,它读取用户名和密码并将它们发送到控制器。目前控制器中的代码是这样的:
def login = {
String inputPassword = params.password
if(params.username == "admin" && inputPassword == "changeme"){
flash.message = "login succeed";
session.user = "admin"
}
else{
flash.message = "login failed"
}
redirect(action: 'index')
}
def logout = {
session.user = null
redirect(action: 'index')
}
现在,我知道将密码存储在原始文本中是个坏主意,所以我想尝试对密码进行哈希处理。
我假设这段代码从密码字段中获取输入并将其分配给变量 inputPassword:
String inputPassword = params.password
可以使用某种 API 将其更改为如下所示:
String inputPassword = aHashOf(params.password)
检查步骤可能如下所示:
if(params.username == "admin" && inputPassword == (whatever the final hash looks like) )
是否有 API 或内置函数可以帮助我解决这个问题?我是否试图以错误的方式解决这个问题?有什么建议吗?
另外,后来我学会使用数据库时,这个过程是否可以很容易地更改为使用数据库值?
【问题讨论】:
标签: grails password-encryption