java笨密码检验方法

 

 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(!test(capital,password)){
     need+="必须包含大写字母 ";
      }
   }
   if(param.equals("2")){
       if(!test(lowercase,password)){
     need+="必须包含小写字母  ";
     }
   }
   if(param.equals("3")){
     if(!test(spec,password)){
     need+="必须包含特殊字符。例如:!@#$%^&* 其中一个或多个  ";
     } 
   }
   if(param.equals("4")){
     if(!test(digital,password)){
     need+="必须包含数字 ";
     }
   }
  return need;
 }

 private boolean test(String regex,String password) {
  boolean flag = false;
     Pattern p = Pattern.compile(regex);
     Matcher m ;
  String str = "";
  for (int i = 0; i < password.length(); i++) {
   str = String.valueOf(password.charAt(i));
   m = p.matcher(str);
   if(m.matches()){
    flag = true;
    break;
   }
  }
  return flag;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值