function CharMode(iN) {
if (iN >= 48 && iN <= 57) // 数字
return 1;
if (iN >= 65 && iN <= 90) // 大写
return 2;
if (iN >= 97 && iN <= 122) // 小写
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;
}
// 返回强度级别
function checkStrong(password) {
if (password.length < 17)
return 0; // 密码太短
Modes = 0;
for (i = 0; i < password.length; i++) {
// 密码模式
Modes |= CharMode(password.charCodeAt(i));
}
return bitTotal(Modes);
}
// 判断强度
function pwStrength(password) {
S_level = checkStrong(password);
if (S_level > 3) {
alert("符合标准!");
} else {
alert("密码必须由大写字母、小写字母、数字和下划线组成,且长度不能小于17位!");
}
}