此问题已在 this Stack Overflow question 中得到解答已经,但它不是特定于 Grails 的,也有点含糊。
我使用 Spring Security 设置了我的 Grails 应用程序,但显然没有获得最新版本,因为它默认为 SHA-256 而不是 bcrypt。现在我的生产数据的密码散列似乎不太理想。
启用 bcrypt 哈希是小菜一碟:
Config.groovy > grails.plugins.springsecurity.password.algorithm = 'bcrypt'
但现在我需要该应用程序将旧哈希转换为新哈希。从根本上说,我知道当用户登录时,我应该让应用程序检查密码是否为 SHA-256 哈希,如果是,请使用 bcrypt 重新哈希输入的密码。一段时间后,它们都会升级,并且可以删除该代码。
但是,确定密码哈希是来自 SHA-256 还是 bcrypt 的实际代码是什么?
编辑
也就是说,我调用获取哈希的实际函数是什么?我该怎么做
bcrypt(incomingpassword)
看看它是否与现有的密码哈希匹配?
最佳答案
bcrypt 密码将以“$2a$10$”开头,长度为 60 个字符。 SHA-256 没有模式,但长度为 64 个字符。
关于grails - 将密码哈希从 SHA 转换为 bcrypt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20709833/