SpringSecurit盐值加密的密码验证以及强密码验证过程
更新时间:2024年10月10日 10:37:58 作者:思祺班
在密码加密过程中,盐值的使用可以增强密码的安全性,如果忘记存储盐值,将无法验证密码,强密码应包含数字、字母和特殊字符,长度应在8到30位之间,以提高账户安全
SpringSecurit盐值加密的密码验证及强密码验证
1、有的时候我们盐值加密的时候没有存入盐值
值存入了密码,然后怎么样验证这个密码呢
以下代码展示:
PasswordEncoder pe = new BCryptPasswordEncoder();
//比较密码
//pe.matches (“前端存过来的密码记得是没有加密的”,“在数据中存储的加密的密码”) ;
boolean matches = pe.matches (changePwdDTO.getOldPassword(),iamAccount.getAuthSecret()) ;
if (!matches){
throw new BusinessException(Status.FAIL_OPERATION, "旧密码错误,请重新输入");
}
//判断密码是否包含相关的字符,数字,字母
if(!check(changePwdDTO.getConfirmPassword())){
throw new BusinessException(Status.FAIL_OPERATION, "密码必须至少为8位字符,其中包含数字、字母及特殊字符");
}
2、强密码验证
包含数字、字母和特殊字符,长度要求8到30位
package security;
/**
* 密码校验:包含数字、字母和特殊字符,长度要求8到30位。
* @author lxzqz
*
*/
public class CheckPassword {
public static final String REGEX_PASSWORD_STRONG = "^(?![0-9]+$)(?![^0-9]+$)(?![a-zA-Z]+$)(?![^a-zA-Z]+$)(?![a-zA-Z0-9]+$)[a-zA-Z0-9\\S]{8,30}$";
/**
* 密码校验,符合强密码规则返回true,否则返回false
* @param password
* @return
*/
public static boolean check(String password) {
boolean flag = password.matches(REGEX_PASSWORD_STRONG);
return flag;
}
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot+MyBatis+Redis实现分布式缓存
本文主要介绍了SpringBoot+MyBatis+Redis实现分布式缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-01-01
利用Mybatis向PostgreSQL中插入并查询JSON字段
这篇文章主要介绍了利用Mybatis向PostgreSQL中插入并查询JSON字段,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下2022-07-07


最新评论