SHA1在grails视图中对数据进行编码并访问哈希结果

时间:2017-04-20 21:33:25

标签: grails

这是在视图中

<g:passwordField name="password" required="" value="${usuarioInstance?.password}"/>

这将是控制器的一部分

pass = params.password.encodeAsSHA1()

这将再次返回到视图中     $ {pass.password}

$ {pass.password}需要更改为文本或解码SHA1()

1 个答案:

答案 0 :(得分:4)

我的建议:

  1. 不要使用sha-1,它是不安全的
  2. 不要解密密码并将其显示在表单字段中。如果用户想要更改它,请让用户输入,如果他们没有输入任何内容,则不要更新该属性
  3. 使用spring security,默认情况下管理Web安全的所有麻烦,并使用开箱即用的Bcrypt。
  4. 安全是每个开发人员都需要认真对待的事情,如果客户坚持不安全的做法,那么他们需要接受教育。

    编辑:@zaph在下面提出了一个很好的观点,所以我应该添加它 - 不要加密密码。密码永远不能转换回纯文本。始终散列(和盐)它们并将用户输入散列与存储的散列进行比较。如果您选择不使用Spring Security,则可以使用Bcrypt standalone并使用静态Bcrypt.checkpw(userInputPw, hashedPw)方法进行检查。

    最终编辑:为了避免任何混淆(因为@zaph在评论中似乎很困惑)我的建议是使用Bcrypt - 特别是使用Spring Security。