栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

javascrpt密码强度校验函数详解

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

javascrpt密码强度校验函数详解

最近写了个密码强度验证的函数,主要验证以下内容

1、密码最小和最大长度

2、连续字符串出现的次数

3、字符连续出现的次数

4、禁止特定的字符串作为密码

5、密码字符串的组合强度要求,必须含有大小写字母,必须含有数字,必须含有特殊字符

6、输入密码必须与确认密码一致

7、支持禁止使用用户名作为密码

8、是否存在连续性的字符串,是否存在逆序性的字符串

(function(window, verifyPwd){
  window.verifyPwd = {
    
    minLength  : 6
 
    
    maxLength  : 18,
 
    
    repeatCount : 0,
 
    
    seriesCount : 3,
 
    
    filter   : [
      "qaz",
      "wsx",
      "edc",
      "qwe",
      "asd",
      "zxc"
    ],
 
    
    arrRegex : ['[0-9]', '[a-z]', '[A-Z]', '[!@#$%^&*()_-]' ],
 
    
    verify : function(userName, pwd, /confirm/iPwd){
      userName = trim(userName);
      pwd   = trim(pwd);
 
      if(!userName || userName.length == 0){
 alert('请先输入用户名');
 
 return false;
      }
 
      if(!pwd || pwd.length == 0){
 alert('请输入密码');
 
 return false;
      }
 
      if (pwd.length < this.minLength) {
 alert('密码长度至少需要' + this.minLength + '位');
 
 return false;
      }
 
      if (pwd.length > this.maxLength) {
 alert('密码长度超过'+ this.maxLength +'位');
 return false;
      }
 
      
      if(confirmPwd && /confirm/iPwd.length > 0){
 if(pwd != /confirm/iPwd){
   alert('输入密码与确认密码不一致');
   return false;
 }
      }
 
      
      if (pwd.indexOf(userName) >= 0) {
 alert('密码中不能出现用户名为' + userName);
 return false;
      }
 
      if (!eval('/' + this.arrRegex[0] + '/').test(pwd)) {
 alert('密码没有包含数字');
 return false;
      }
 
      if (!eval('/' + this.arrRegex[1] + '/').test(pwd)) {
 alert('密码没有包含小写字母');
 return false;
      }
 
      if (!eval('/' + this.arrRegex[2] + '/').test(pwd)) {
 alert('密码没有包含大写字母');
 return false;
      }
 
      if (!eval('/' + this.arrRegex[3] + '/').test(pwd)) {
 alert('密码没有包含!@#$%&*_等至少一个特殊字符');
 return false;
      }
 
      
      if(this.filter.length > 0){
 for(var i = 0, length = this.filter.length; i < length; i++){
   var value = this.filter[i];
 
   if(pwd.indexOf(value) < 0){
     continue;
   }
 
   alert("密码中不允许含有"+ value);
 
   return false;
 }
      }
 
      
      if(this.isRepeate(pwd)){
 alert('密码中不能出现重复字符');
 return false;
      }
 
      
      if(this.isSeries(pwd)){
 alert('密码中不能存在'+ this.seriesCount +'个以上的连续字符');
 return false;
      }
 
      return true;
    },
 
    
    isRepeate : function(pwd){
      if(pwd && pwd.length > 0){
 for(var i = 0, length = pwd.length; i < length; i++){
   var currentChar = pwd.charAt(i);
   var prevChar  = i == 0 ? "" : pwd.charAt(i - 1);
 
   if(currentChar == prevChar){
     return true;
   }
 }
      }
 
      return false;
    },
 
    
    isSeries : function(pwd){
      if(pwd && pwd.length > 0) {
 
 var ascSeriesCount = 1;
 var descSeriesCount= 1;
 
 
 for (var i = 0, length = pwd.length; i < length; i++) {
   var currentCharCode = pwd.charCodeAt(i);
   var prevCharCode  = i == 0 ? "" : pwd.charCodeAt(i - 1);
 
   if(currentCharCode == prevCharCode + 1){
     ascSeriesCount++;
 
     if(ascSeriesCount == this.seriesCount){
return true;
     }
   } else{
     ascSeriesCount = 1;
   }
 }
 
 
 for (var i = pwd.length - 1; i >= 0; i--) {
   var currentCharCode = pwd.charCodeAt(i);
   var prevCharCode  = (i - 1) >= 0 ? pwd.charCodeAt(i - 1) : "";
 
   if(currentCharCode + 1 == prevCharCode){
     descSeriesCount++;
 
     if(descSeriesCount == this.seriesCount){
return true;
     }
   } else{
     descSeriesCount = 1;
   }
 }
      }
 
      return false;
    },
 
    
    init : function(userNameId, pwdId){
      $("#"+ pwdId).on("blur", function(){
 var userName = $("#"+ userNameId).val();
 var pwd = this.value;
 
 if(userName.length == 0){
   $("#"+ userNameId).focus();
   alert("请输入用户名");
 
   return false;
 }
 
 
 if(this.verify(userName, pwd)){
   pwd = md5(pwd);
   $("#"+ pwdId).val(pwd);
 }
      });
    }
  }
})(window, undefined);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/70904.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号