JS实现至少包含字母、大小写数字、字符的密码等级的两种方法

  作者:bea

本文实例讲述了JS实现至少包含字母、大小写数字、字符的密码等级的两种方法。分享给大家供大家参考。具体如下: 前言 密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是字母、数字、字符3选2,区分大小写。对于设置得太简单的密码,予以错误提示。或者予以密码等级(低中高)显示,让用户设置高级密码。那如何利用JS实现呢? 实现代码如下: function passwordLevel(password) { var Modes = 0; for
本文实例讲述了JS实现至少包含字母、大小写数字、字符的密码等级的两种方法。分享给大家供大家参考。具体如下:
前言
密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是字母、数字、字符3选2,区分大小写。对于设置得太简单的密码,予以错误提示。或者予以密码等级(低中高)显示,让用户设置高级密码。那如何利用JS实现呢?
实现代码如下:


function passwordLevel(password) {
var Modes = 0;
for (i = 0; i < password.length; i++) {
Modes |= CharMode(password.charCodeAt(i));
}
return bitTotal(Modes);
//CharMode函数
function CharMode(iN) {
if (iN >= 48 && iN <= 57)//数字
return 1;
if (iN >= 65 && iN <= 90) //大写字母
return 2;
if ((iN >= 97 && iN <= 122) || (iN >= 65 && iN <= 90))
//大小写
return 4;
else
return 8; //特殊字符
}
//bitTotal函数
function bitTotal(num) {
modes = 0;
for (i = 0; i < 4; i++) {
if (num & 1) modes++;
num >>>= 1;
}
return modes;
}
}


使用
普通使用
使用语法:passwordLevel(string) 验证规则:数字、大写字母、小写字母、特殊字符 函数结果:返回密码中包含的规则数 运行例子:


passwordLevel("123456") //返回1

passwordLevel("Abc'123456") //返回4



结合jquery.validate.js使用:


//添加验证方法:至少包含两种规则

$.validator.addMethod("strongPsw",function(value,element){
if(passwordLevel(value)==1){returnfalse;}
returntrue
},"格式不符合");
//开始验证

$(".form").validate({
rules:{
pwd:{
required:true, //必填
minlength:6, //最小长度
maxlength:32, //最大长度
strongPsw:true, //密码强度
},
repwd:{
required:true,
minlength:6,
maxlength:32,
equalTo:"#pwd" //再次填写密码需一致
}
}
});

关于密码生成与强度检测感兴趣的朋友还可参考在线工具:
密码安全性在线检测
高强度密码生成器
短链(短网址)在线生成工具
希望本文所述对大家的javascript程序设计有所帮助。


有用  |  无用

猜你喜欢