将密码哈希从SHA转换为bcrypt

时间:2013-12-20 18:29:19

标签: 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)查看它是否与现有密码哈希匹配?

1 个答案:

答案 0 :(得分:6)

bcrypt密码将以“$ 2a $ 10 $”开头,长度为60个字符。 SHA-256没有模式,但它将是64个字符长。