我搜索了 Spring 5 Security 的文档,但在任何地方都找不到对 BCrypt$2y$
版本前缀的引用。
但是,在查看源代码时,我在Javadoc 中PasswordEncoder
找到了一个参考:
可以选择提供“版本”($2a、$2b、$2y)
谁能给我一些共识?使用 Spring 5 Security 时是否可以使用$2y$
bcrypt 版本前缀?
我搜索了 Spring 5 Security 的文档,但在任何地方都找不到对 BCrypt$2y$
版本前缀的引用。
但是,在查看源代码时,我在Javadoc 中PasswordEncoder
找到了一个参考:
可以选择提供“版本”($2a、$2b、$2y)
谁能给我一些共识?使用 Spring 5 Security 时是否可以使用$2y$
bcrypt 版本前缀?
这取决于您使用的版本,引入此功能的提交5.2.0.M1
是在 2018 年 10 月 18 日。它有标签,表示将引入此提交的版本,该版本的官方文档现在指定此功能存在:
使用 BCrypt 强散列函数的 PasswordEncoder 的实现。客户端可以选择提供一个“版本”($2a、$2b、$2y)和一个“强度”(在 BCrypt 中也称为日志轮数)和一个 SecureRandom 实例。强度参数越大,必须(以指数方式)对密码进行哈希处理的工作就越多。默认值为 10。
在版本之前5.2.0.M1
没有这个功能,这个版本还没有正式发布,只有快照(5.2.0.M1
2019年1月16日发布)。
如果您想使用此功能,则必须使用此版本(或更高版本),直到正式发布为止。