JAVA密码校验 您所在的位置:网站首页 java密码强度正则 JAVA密码校验

JAVA密码校验

2023-08-21 05:52| 来源: 网络整理| 查看: 265

需求

被产品坑了一波,需求文档长这样,

结果APP一测试,跟我说:

密码不能连续6位或6位以上,也就是说,支持11111aa@

密码不能连续降序或升序6位及6位以上,也就是说,支持12345aa@

这.....不过机智的我还是实现了。

APP接口代码实现 /** * 检查密码是否符合规则, * 1.密码长度至少8位以上 * 2.密码应至少包含大写字母,小写字母,数字,特殊符号中的三项 * 3.禁止使用相同的数字或字符作为密码,如111111,aaaaaa等 * 4.禁止使用连续升序或降序的数字或字母作为密码,如123456,abcdef等 * true检验合格 * false检验不合格 */ public static boolean checkPwd(String password) { //数字 String REG_NUMBER = ".*\\d+.*"; //小写字母 String REG_UPPERCASE = ".*[A-Z]+.*"; //大写字母 String REG_LOWERCASE = ".*[a-z]+.*"; //特殊符号 String REG_SYMBOL = ".*[~!@#$%^&*()_+|,.?/:;'\\[\\]{}\"]+.*"; //密码为空或者长度小于8位则返回false if (password == null || password.length() =6){ // return false; // } // if(flag2>=6){ // return false; // } return true; } 前端JS代码实现 function matchPwd(password){ var reg = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8}'); if(!reg.test(password)){ console.log("222不符合数字、字母、符号"); return false; } var chars = password.split(''); for(var i = 0, l = chars.length; i < l-5; i ++) { var n1 = chars[i].charCodeAt(); var n2 = chars[i + 1].charCodeAt(); var n3 = chars[i + 2].charCodeAt(); var n4 = chars[i + 3].charCodeAt(); var n5 = chars[i + 4].charCodeAt(); var n6 = chars[i + 5].charCodeAt(); // 判断重复字符 if (n1 == n2 && n1 == n3 && n1 == n4 && n1 == n5 && n1 == n6) { console.log("333333重复"); return false; } // 判断连续字符: 正序 + 倒序 if ((n1 + 1 == n2 && n1 + 2 == n3 && n1 + 3 == n4 && n1 + 4 == n5 && n1 + 5 == n6 ) || (n1 - 1 == n2 && n1 - 2 == n3 && n1 - 3 == n4 && n1 - 4 == n5 && n1 - 5 == n6)) { console.log("44444连续"); return false; } } return true; }

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有