Spring BCryptPasswordEncoder-以任何方式配置用于生成哈希的轮数吗?

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

我已经看到在Spring中,我们可以通过BCryptPasswordEncoder构造函数参数(强度)来传递密码检查的轮数。有什么方法可以控制哈希生成中的回合数量吗?

spring spring-boot spring-security bcrypt spring-oauth2
1个回答
0
投票

我相信Spring Security的strengthBCryptPasswordEncoder参数确实控制了散列生成中的回合数:

BCryptPasswordEncoder类的JavaDoc说:

使用BCrypt强哈希函数的PasswordEncoder的实现。客户可以选择提供一个“版本”($ 2a,$ 2b,$ 2y)和一个“强度”(BCrypt中的又名日志回合)和一个SecureRandom实例。强度参数越大,将需要更多的工作(以指数方式)来哈希密码。默认值为10。

[strength参数作为BCrypt参数传递到log_rounds类(实际实现),JavaDoc对此进行了说明:

gensalt()方法采用一个可选参数(log_rounds),该参数确定哈希的计算复杂度:字符串strong_salt = BCrypt.gensalt(10)字符串strong_salt = BCrypt.gensalt(12)工作量成倍增加(2 ** log_rounds),因此每次增加量是工作量的两倍。默认log_rounds为10,有效范围为4到31。

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