java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringSecurit盐值加密的密码验证及强密码验证

SpringSecurit盐值加密的密码验证以及强密码验证过程

作者:思祺班

在密码加密过程中,盐值的使用可以增强密码的安全性,如果忘记存储盐值,将无法验证密码,强密码应包含数字、字母和特殊字符,长度应在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;
	}
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文