原文PasswordEncoder详解补充一个matches方法
BCryptPasswordEncoder 是 Spring Security 提供的一种密码编码器,用于对密码进行加密和验证。它基于 bcrypt 哈希算法,是一种安全的密码存储方案,能够有效地防止密码泄露和暴力破解攻击
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
public class PasswordEncoderExample {
public static void main(String[] args) {
// 创建 BCryptPasswordEncoder 实例
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
// 加密密码
String rawPassword = "password";
String encodedPassword = passwordEncoder.encode(rawPassword);
System.out.println("Encoded Password: " + encodedPassword);
// 验证密码
String inputPassword = "password";
boolean isPasswordMatch = passwordEncoder.matches(inputPassword, encodedPassword);
if (isPasswordMatch) {
System.out.println("Password matches!");
} else {
System.out.println("Password does not match!");
}
}
}
项目若依封装好的
在SecurityUtils类下静态工具方法
/**
* 生成BCryptPasswordEncoder密码
*
* @param password 密码
* @return 加密字符串
*/
public static String encryptPassword(String password)
{
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
return passwordEncoder.encode(password);
}
/**
* 判断密码是否相同
*
* @param rawPassword 真实密码
* @param encodedPassword 加密后字符
* @return 结果
*/
public static boolean matchesPassword(String rawPassword, String encodedPassword)
{
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
return passwordEncoder.matches(rawPassword, encodedPassword);
}