密码强度校验

一般 web 项目少不了登录,为了防止密码被暴力破解,常用的一种方式是通过限制登录次数配合强密码来增加破解难度,对于安全系数比较高的系统,密码强度验证规则还是比较复杂的,今天让我们先看看简版的密码强度校验,基本能满足一般系统需求。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
* 验证密码强度 满分5分,业务可以暂定3+为ok
* @param password 待验证密码
*/

function pwdLevel(password) {
var score = 0;

var upperCase = new RegExp("[A-Z]");
var lowerCase = new RegExp("[a-z]");
var numbers = new RegExp("[0-9]");
var specialchars = new RegExp("([!,%,&,@,#,$,^,*,?,_,~])");
var specialchars = /(`|\-|=|\[|\]|;|’|,|\.|\/|~|\!|@|#|\$|%|\^|&|\*|\(|\)|_|\+|\{|\}|:|”|<|>|\?|\|)/;
// 特殊字符 `-=[];’,./~!@#$%^&*()_+{}:”<>?|

if (password.length > 8) {
score++;
}

if (password.match(upperCase)) {
score++;
}
if (password.match(lowerCase)) {
score++;
}
if (password.match(numbers)) {
score++;
}
if (specialchars.test(password)) {
score++;
}

if (!password.length) {
score = 0;
}

return score;
}
您的支持将鼓励我继续创作!