Spring Security 的 BCrypt 实现是否存在漏洞?

Is Spring Security's BCrypt implementation vulnerable?

我们公司的安全审计发现我们的 bcrypt 哈希值的前缀是“$2a$”。根据 [1] 和 [2],这可能表明使用了较旧的易受攻击的 bcrypt 实现。

所以 - 这是我的问题:

  1. Spring 安全的 bcrypt 实现是否包含漏洞?
  2. Spring 安全性是否支持“$2x$”和“$2y$”前缀?

参考文献:
[1] http://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html
[2] http://www.openwall.com/lists/oss-security/2011/06/21/16

  1. 您提供的链接是关于 BCrypt 的 C 实现中的一个漏洞。 Spring 安全实现是 jBCrypt 的分支,它是 Java.

  2. 中编写的不同实现
  3. 查看 source code,从版本 3.2.5 开始,Spring 安全性不支持“$2x$”和“$2y$”前缀。该实现不包含 C 漏洞,但它不能与当前基于 C 的实现互操作(如 PHP)。