Sas*_*vic 5 spring bcrypt spring-boot
我在 Spring 中使用 BCrypt,它给了我不同的哈希值,然后使用一些在线工具,例如https://bcrypt-generator.com/
有什么想法吗?
我尝试在 Spring 中将强度设置为 12,并在 bcrypt-generator.com 上将轮数设置为 12,但没有成功。
DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
provider.setPasswordEncoder(new BCryptPasswordEncoder(12));
provider.setUserDetailsService(bettingBotUserDetailsService);
Run Code Online (Sandbox Code Playgroud)
对于原始密码“admin”,我得到以下结果:
bcrypt-generator.com 有 12 轮:
$2y$12$15h6Idq/TwfcuJu6H1VXie/ao7P4AKlLgIrC5yxbwlEUdJjx9Sl5S
Run Code Online (Sandbox Code Playgroud)
Spring(从调试模式捕获):
$2a$10$ED5wQChpxzagbvhlqEqD2.iIdIKv9ddvJcX0WKrQzSOckgc3RHFLW
Run Code Online (Sandbox Code Playgroud)
Pat*_*mil 10
BCrypt 为相同的 Input 生成不同的盐。Bcrypt算法
BCrypt 每次都会返回不同的哈希值,因为它将不同的随机值合并到哈希值中。这被称为“盐”。"rainbow table"
它可以防止人们使用预先生成的表来攻击您的散列密码,该表将密码散列映射回他们的密码。盐意味着密码不是只有一个哈希值,而是有多个哈希2^16
值。
我们可以按如下方式检查普通字符串的哈希值
Boolean isMatch = passwordEncoder().matches(currentPassword,dbPassword);
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2962 次 |
最近记录: |