【问题标题】:How can bcrypt be save?如何保存 bcrypt?
【发布时间】:2013-11-11 10:20:41
【问题描述】:

因为 Spring 弃用了旧接口

org.springframework.security.crypto.password.PasswordEncoder;

我在寻找适合的替代品

org.springframework.security.authentication.encoding.PasswordEncoder;

我的搜索指向:https://stackoverflow.com/a/18678325

我测试了 bcrypt,我对它的工作原理很感兴趣。

https://stackoverflow.com/a/6833165 的解释指出了一个问题。

如果$2a$10$ZaDBCZaI59IMdKuBiRdubuMa2h/itIYIwqLHpS1q245ISD90xsjkW 包含有关编码类型和盐等的所有信息,并且存储在我的数据库中,为什么要保存它? 如果有人有这个“哈希”,他可以很容易地用暴力破解它。

在我之前的项目中,我使用了带有系统范围秘密盐的 SHA 编码。在这种情况下,从数据库中窃取的哈希值不容易被解密。

那么为什么 bcrypt 比具有系统范围盐的 SHA 更受欢迎?

【问题讨论】:

    标签: spring-security bcrypt sha


    【解决方案1】:

    2 分:

    1. Bcrypt 旨在通过具有可配置的复杂性来抵抗蛮力攻击,从而使进程任意变慢。更多详情请参考wikipedia
    2. 由于已知数据库中的每个密码都包含一个共享组件,因此像现有系统一样对所有密码使用相同的哈希值可能容易受到差异化攻击。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      • 2021-06-15
      • 2013-08-07
      • 2017-06-26
      • 2016-09-03
      • 2011-11-13
      • 1970-01-01
      相关资源
      最近更新 更多