使用Spring Security为实时Grails应用程序增加BCrypt logrounds而不重新编码所有密码是否安全?

问题描述 投票:1回答:1

这个问题适用于使用配置了BCrypt的Spring Security生成Grails应用程序。

为了跟上提高服务器CPU速度的步伐,我想提高grails.plugin.springsecurity.password.bcrypt.logrounds属性的值,以便密码散列需要更长的时间并且不易受到攻击。

首先想到的是,我认为这是一项艰巨的任务,需要在用户登录或大规模重新编码和自定义登录处理程序时采用涓涓细流方式,但在运行之间本地尝试时,它似乎无需任何其他更改(使用持久数据库,模拟非本地部署)。

我猜这是因为logrounds存储在密码哈希中:例如,当在本地运行之间从10到20时,密码看起来如下

$2a$10$i/PEPcvSj...

'$2a$20$3GGujw6o...

我测试过:

  • 在更改之前创建的旧帐户仍可以登录。
  • 旧帐户可以更改其密码,新的哈希值使用新的logrounds设置
  • 可以按预期创建和登录新帐户
  • 尝试使用不存在的帐户登录会产生预期的新延迟。

有没有理由不继续改变?这里的高度谨慎是因为以任何方式阻止生产登录的错误将是非常昂贵的

grails spring-security bcrypt
1个回答
0
投票

一切都按预期工作,所以答案是肯定的,你可以。您可以更改loground而不会影响现有帐户,因为用于生成哈希的loground内置于哈希中。 BCrypt的好功能

© www.soinside.com 2019 - 2024. All rights reserved.