gpt4 book ai didi

spring - Spring 中的 BCrypt 提供与在线工具不同的哈希值

转载 作者:行者123 更新时间:2023-12-01 18:26:12 24 4
gpt4 key购买 nike

我在 Spring 中使用 BCrypt,它给了我不同的哈希值,然后一些在线工具使用像 https://bcrypt-generator.com/

有什么想法吗?

我尝试在 Spring 中将强度设置为 12,并在 bcrypt-generator.com 上将轮数设置为 12,但没有成功。

    DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
provider.setPasswordEncoder(new BCryptPasswordEncoder(12));
provider.setUserDetailsService(bettingBotUserDetailsService);

对于原始密码“admin”我得到以下结果:

bcrypt-generator.com 有 12 轮:

$2y$12$15h6Idq/TwfcuJu6H1VXie/ao7P4AKlLgIrC5yxbwlEUdJjx9Sl5S

Spring(从 Debug模式捕获):

$2a$10$ED5wQChpxzagbvhlqEqD2.iIdIKv9ddvJcX0WKrQzSOckgc3RHFLW

最佳答案

BCrypt 为相同的输入生成不同的盐Bcrypt Algorithm

BCrypt 每次都会返回不同的哈希值,因为它将不同的随机值合并到哈希值中。这被称为“盐”。它可以防止人们使用“彩虹表”攻击您的散列密码,这是一个将密码散列映射回其密码的预先生成的表。盐意味着密码不是只有一个哈希,而是有 2^16

我们可以按如下方式检查普通字符串的哈希值

Boolean isMatch = passwordEncoder().matches(currentPassword,dbPassword);

@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}

关于spring - Spring 中的 BCrypt 提供与在线工具不同的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57240083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com