Java实现SpringSecurity密码加密算法BCryptPasswordEncoder
Spring Security 提供了BCryptPasswordEncoder类,实现Spring的PasswordEncoder接口使用BCrypt强哈希【SHA-256 随机盐 密钥 】方法来加密密码,BCrypt强哈希方法每次加密的结果都不一样,不可逆。
1、加密(encryptPassword):注册用户时,使用【SHA-256 随机盐 密钥】将用户输入的密码进行hash处理,然后将密码hash值存入数据库中。
2、密码匹配(matchesPassword):用户登录时,密码匹配阶段并没有进行密码解密(因为密码经过hash处理,不可逆),而是使用相同的算法,将用户输入的密码进行hash处理,得到密码的hash值,然后将其与从数据库中查询到的密码hash值进行比较。如果两者相同,说明用户输入的密码正确。
-
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-
-
/**
-
* @Description 安全服务工具类
-
*/
-
public class SecurityUtils {
-
-
/**
-
* 生成BCryptPasswordEncoder密码
-
*
-
* @param rawPassword 真实密码
-
* @return 加密字符串
-
*/
-
public static String encryptPassword(String rawPassword) {
-
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
-
return passwordEncoder.encode(rawPassword);
-
}
-
-
/**
-
* 判断密码是否相同
-
*
-
* @param rawPassword 真实密码
-
* @param encodedPassword 加密字符串
-
* @return 结果
-
*/
-
public static boolean matchesPassword(String rawPassword, String encodedPassword) {
-
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
-
return passwordEncoder.matches(rawPassword, encodedPassword);
-
}
-
-
/**
-
* 是否为管理员
-
*
-
* @param userId 用户ID
-
* @return 结果
-
*/
-
public static boolean isAdmin(Long userId) {
-
return userId != null && 1L == userId;
-
}
-
-
}
maven依赖
-
<dependency>
-
<groupId>org.springframework.security</groupId>
-
<artifactId>spring-security-crypto</artifactId>
-
</dependency>
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfijfe
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01