grails - 在grals acl中更改/编辑密码

标签 grails encryption

我使用grails acl安全性。我想以管理员身份登录后更改或编辑用户密码。但是,当我进入编辑模式时,密码字段将显示之前在用户表中保存为加密字符串的加密文本。有什么方法可以解密从数据库中获取的字符串并以原始字符串形式显示在密码字段中?

我在grails acl中没有得到任何直接的解决方案来做到这一点。

任何帮助,将不胜感激。

最佳答案

显示明文密码的理由不是很好。作为用户或管理员,如果要更改密码,则可以像其他任何属性一样进行操作。显示旧值(由于是密码,请显示为*字符;如果您是管理员,则显示为哈希值),然后可以输入新密码。当您更新时,它将被散列并存储。

只要明文密码满足验证要求(最小长度,特殊字符等),那么更新就可以正常进行。

请注意,密码通常不加密(意味着可以解密),而是经过哈希处理。哈希算法是有损的-给定任何输入,哈希通常是固定长度的输出,因此哈希不能包含所有原始数据,也不能用于检索原始值。对于密码,这很好。为了进行身份验证,您无需对哈希值进行散列,而是将其与登录页面中的明文值进行比较-对哈希登录页面值并与存储的哈希值进行比较。对于某些算法,它们将是相同的,而对于其他算法(例如bcrypt),它们将是不同的但等效的,并且该算法将有一种方法来检查它们是否等效。

关于grails - 在grals acl中更改/编辑密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19517732/

相关文章:

java - 基于 Java 中的共享 secret 保护数据的创造性/安全方法

grails - 如何使用 in 子句 'in' a grails.gorm.DetachedCriteria?

inheritance - GORM 关系中的抽象类

c# - 如何在 C# 中使用 PBKDF2 HMAC SHA-256 或 SHA-512 使用 salt 和迭代对密码进行哈希处理?

javascript - 如何混淆音频标签的 src 属性

java - 通过传递 IV 进行 AES 256 加密

php - 是否有可能以某种方式为我的网站获取这个随机生成的 key 并访问 SQL?

tomcat - Nginx Grails - 提供存储在多个目录中的静态文件

grails - 递归方法在grails/groovy单元测试用例中无法正常工作

oracle - 带有 Oracle 厚 OCI 驱动程序的 Grails 使用错误的用户向 Oracle 进行身份验证