java密码自动匹配校验

本文介绍了一个密码验证系统的实现细节,包括密码复杂度的要求如大小写字母、数字和特殊字符的组合,以及密码长度限制等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

//登录密码没有问题,再判断是否符合密码规则
   String str= checkPasswordRule(password);
   if(str.equals("")){
    request.getSession().setAttribute(PlatformConstants.CURRENT_USER, new UserInfoWrapper(user));
   }else{
    throw new UserException(str);
   } 

 public String checkPasswordRule(String password) throws UserException{
  String need = "";
  UserPasswordRuleInfo userPwdRuleInfo = userService.getUserPwdRule();
  userPwdRule = new UserPasswordRuleInfoWrapper(userPwdRuleInfo);
  String[] complexitys = userPwdRule.getPwd_complexity().split(",");
  for (int i = 0; i < complexitys.length; i++) {
   need+=doExcute(complexitys[i],password);
  }
  if(Integer.parseInt(userPwdRule.getPwd_min_lengh()) > password.length()){
   need+="密码不能小于"+userPwdRule.getPwd_min_lengh()+"位";
  }
  return need;
 }
 
 private String doExcute(String param, String password) {
   String need = "";
   String digital = "/[0-9]/";
   String capital = "/[A-Z]/";
   String lowercase ="/[a-z]/";
   String spec="/[,.<>{}~!@#$%^&*_]/";
  
   if(param.equals("1")){
       if(!capital.equals(password)){
     need+="必须包含大写字母 ";
      }
   }
   if(param.equals("2")){
       if(!lowercase.equals(password)){
     need+="必须包含小写字母  ";
     }
   }
   if(param.equals("3")){
     if(!spec.equals(password)){
     need+="必须包含特殊字符。例如:!@#$%^&* 其中一个或多个  ";
     } 
   }
   if(param.equals("4")){
     if(!digital.equals(password)){
     need+="必须包含数字 ";
     }
   }
  return need;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值