password-strength-meter-like-google-v20/
一、密码长度:
5 分: 小于等于 4 个字符
10 分: 5 到 7 字符
25 分: 大于等于 8 个字符
二、字母:
0 分: 没有字母
10 分: 全都是小(大)写字母
20 分: 大小写混合字母
三、数字:
0 分: 没有数字
10 分: 1 个数字
20 分: 大于等于 3 个数字
四、符号:
0 分: 没有符号
10 分: 1 个符号
25 分: 大于 1 个符号
五、奖励:
2 分: 字母和数字
3 分: 字母、数字和符号
5 分: 大小写字母、数字和符号
最后的评分标准:
>= 90: 非常安全
>= 80: 安全(Secure)
>= 70: 非常强
>= 60: 强(Strong)
>= 50: 一般(Average)
>= 25: 弱(Weak)
>= 0: 非常弱
/**
02.
* 密码强度检测(cryptographic strength check),返回0~95之间的数字..数字超大强度越高,不支持中文字符,如密码文本中包含中文~该中文字符将作为字符打分
03.
*
04.
* @param passString 待检测的密码文本
05.
* @return 返回0~95之间的数字..数字超大强度越高
06.
*/
07.
static
public
function
csCheck(passString:
String
):
uint
08.
{
09.
if
(!passString)
return
0
;
10.
var
count:
uint
=
0
;
11.
count += passString.length<=
4
?
5
:(passString.length>=
8
?
25
:
10
);
12.
count += !passString.match(/[a-z]/i)?
0
:(passString.match(/[a-z]/) && passString.match(/[A-Z]/)?
20
:
10
);
13.
count += !passString.match(/[
0
-
9
]/)?
0
:(passString.match(/[
0
-
9
]/g).length >=
3
?
20
:
10
);
14.
count += !passString.match(//W/)?
0
:(passString.match(//W/g).length >
1
?
25
:
10
);
15.
count += !passString.match(/[
0
-
9
]/)||!passString.match(/[a-z]/i)?
0
:(!passString.match(//W/)?
2
:(!passString.match(/[a-z]/) || !passString.match(/[A-Z]/)?
3
:
5
));
16.
return
count
17.
}