gpt4 book ai didi

spring-security - 使用 BCryptPasswordEncoder 时获得相同的哈希值

转载 作者:行者123 更新时间:2023-12-03 14:32:35 24 4
gpt4 key购买 nike

我正在使用 BCryptPasswordEncoder 使用 Spring 安全性。现在要更改密码,我需要做的是将用户提供的现有密码与数据库值进行比较。

但是由于盐是由BCryptPasswordEncoder动态生成的,每次我从下面的方法得到不同的散列值时,它不一定会与我的 DB 值匹配。

public static String encodePassword(String password) {
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String hashedPassword = passwordEncoder.encode(password);
return hashedPassword;
}

解决这个问题的方法是什么?我可以识别用于我的数据库字段的盐并在上述方法中使用相同的盐吗?

最佳答案

使用 matches PasswordEncoder 上的方法接口(interface)检查密码是否有效,而不是重新编码并与现有哈希进行比较。

BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String existingPassword = ... // Password entered by user
String dbPassword = ... // Load hashed DB password

if (passwordEncoder.matches(existingPassword, dbPassword)) {
// Encode new password and store it
} else {
// Report error
}

关于spring-security - 使用 BCryptPasswordEncoder 时获得相同的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26811885/

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