grails - 将密码哈希从 SHA 转换为 bcrypt

标签 grails spring-security bcrypt jbcrypt

此问题已在 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/

相关文章:

grails Controller 渲染错误

java - 注销重定向到 `/sessiontimeout` 而不是 `/logout`

c# - C#中的哈希密码?密码/PBKDF2

Java spring boot 在将管理员密码存储到数据库之前对其进行加密?

mongodb - Grails:查找具有包含具有给定属性值的对象的列表属性的对象

hibernate - Hibernate/GORM-处理多 session 域对象更新

java - 需要更改使用的名称 sec :authentication in thymeleaf

spring - isAuthenticated 和 isFullyAuthenticated 之间的区别

c# - 迭代SHA512使其更安全?

grails - grails-2.4.3无法正常工作?