密码已经是我们生活工作中必不可少的工具,但一个不安全的密码有又有可能会给我们造成不必要的损失。作为网站设计者,如果我们在网页中能对用户输入的密码进行安全评估,并显示出相应的提示信息,那么对用户设置一个安全的密码将有很大帮助。同时也使得网站更具人性化,更有吸引力.
什么是一个安全的密码呢?本程序按以下的方式进行评估.
1.如果密码少于5位,那么就认为这是一个弱密码.
2.如果密码只由数字、小写字母、大写字母或其它特殊符号当中的一种组成,则认为这是一个弱密码.
3.如果密码由数字、小写字母、大写字母或其它特殊符号当中的两种组成,则认为这是一个中度安全的密码.
4.如果密码由数字、小写字母、大写字母或其它特殊符号当中的三种以上组成,则认为这是一个比较安全的密码.
  本程序将根据用户输入的密码分别显示不同的颜色表示密码的强度,具体程序如下:
  以下是引用片段:
 1![]() <script language=javascript>
<script language=javascript>  
2![]()
3![]()
4![]()
5![]() //CharMode函数
//CharMode函数  
6![]() //测试某个字符是属于哪一类.
//测试某个字符是属于哪一类.  
7![]() function CharMode(iN){
function CharMode(iN){  
8![]() if (iN>=48 && iN <=57) //数字
if (iN>=48 && iN <=57) //数字  
9![]() return 1;
return 1;  
10![]() if (iN>=65 && iN <=90) //大写字母
if (iN>=65 && iN <=90) //大写字母  
11![]() return 2;
return 2;  
12![]() if (iN>=97 && iN <=122) //小写
if (iN>=97 && iN <=122) //小写  
13![]() return 4;
return 4;  
14![]() else
else  
15![]() return 8; //特殊字符
return 8; //特殊字符  
16![]() }
}  
17![]()
18![]() //bitTotal函数
//bitTotal函数  
19![]() //计算出当前密码当中一共有多少种模式
//计算出当前密码当中一共有多少种模式  
20![]() function bitTotal(num){
function bitTotal(num){  
21![]() modes=0;
modes=0;  
22![]() for (i=0;i<4;i++){
for (i=0;i<4;i++){  
23![]() if (num & 1) modes++;
if (num & 1) modes++;  
24![]() num>>>=1;
num>>>=1;  
25![]() }
}  
26![]() return modes;
return modes;  
27![]() }
}  
28![]()
29![]() //checkStrong函数
//checkStrong函数  
30![]() //返回密码的强度级别
//返回密码的强度级别  
31![]()
32![]() function checkStrong(sPW){
function checkStrong(sPW){  
33![]() if (sPW.length<=4)
if (sPW.length<=4)  
34![]() return 0; //密码太短
return 0; //密码太短  
35![]() Modes=0;
Modes=0;  
36![]() for (i=0;i<sPW.length;i++){
for (i=0;i<sPW.length;i++){  
37![]() //测试每一个字符的类别并统计一共有多少种模式.
//测试每一个字符的类别并统计一共有多少种模式.  
38![]() Modes|=CharMode(sPW.charCodeAt(i));
Modes|=CharMode(sPW.charCodeAt(i));  
39![]() }
}  
40![]()
41![]() return bitTotal(Modes);
return bitTotal(Modes);  
42![]()
43![]() }
}  
44![]()
45![]() //pwStrength函数
//pwStrength函数  
46![]() //当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色
//当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色  
47![]()
48![]() function pwStrength(pwd){
function pwStrength(pwd){  
49![]() O_color="#eeeeee";
O_color="#eeeeee";  
50![]() L_color="#FF0000";
L_color="#FF0000";  
51![]() M_color="#FF9900";
M_color="#FF9900";  
52![]() H_color="#33CC00";
H_color="#33CC00";  
53![]() if (pwd==null||pwd==''){
if (pwd==null||pwd==''){  
54![]() Lcolor=Mcolor=Hcolor=O_color;
Lcolor=Mcolor=Hcolor=O_color;  
55![]() }
}  
56![]() else{
else{  
57![]() S_level=checkStrong(pwd);
S_level=checkStrong(pwd);  
58![]() switch(S_level) {
switch(S_level) {  
59![]() case 0:
case 0:  
60![]() Lcolor=Mcolor=Hcolor=O_color;
Lcolor=Mcolor=Hcolor=O_color;  
61![]() case 1:
case 1:  
62![]() Lcolor=L_color;
Lcolor=L_color;  
63![]() Mcolor=Hcolor=O_color;
Mcolor=Hcolor=O_color;  
64![]() break;
break;  
65![]() case 2:
case 2:  
66![]() Lcolor=Mcolor=M_color;
Lcolor=Mcolor=M_color;  
67![]() Hcolor=O_color;
Hcolor=O_color;  
68![]() break;
break;  
69![]() default:
default:  
70![]() Lcolor=Mcolor=Hcolor=H_color;
Lcolor=Mcolor=Hcolor=H_color;  
71![]() }
}  
72![]() }
}  
73![]()
74![]() document.getElementById("strength_L").style.background=Lcolor;
document.getElementById("strength_L").style.background=Lcolor;  
75![]() document.getElementById("strength_M").style.background=Mcolor;
document.getElementById("strength_M").style.background=Mcolor;  
76![]() document.getElementById("strength_H").style.background=Hcolor;
document.getElementById("strength_H").style.background=Hcolor;  
77![]() return;
return;  
78![]() }
}  
79![]()
80![]() </script>
</script>  
81![]()
82![]() <form name=form1 action="" >
<form name=form1 action="" >  
83![]() 输入密码:<input type=password size=10 onKeyUp=pwStrength(this.value) onBlur=pwStrength(this.value)>
输入密码:<input type=password size=10 onKeyUp=pwStrength(this.value) onBlur=pwStrength(this.value)>  
84![]() <br>密码强度:
<br>密码强度:  
85![]() <table width="217" border="1" cellspacing="0" cellpadding="1" bordercolor="#cccccc" height="23" style='display:inline'>
<table width="217" border="1" cellspacing="0" cellpadding="1" bordercolor="#cccccc" height="23" style='display:inline'>  
86![]() <tr align="center" bgcolor="#eeeeee">
<tr align="center" bgcolor="#eeeeee">  
87![]()
88![]() <td width="33%" id="strength_L">弱</td>
<td width="33%" id="strength_L">弱</td>  
89![]()
90![]() <td width="33%" id="strength_M">中</td>
<td width="33%" id="strength_M">中</td>  
91![]()
92![]() <td width="33%" id="strength_H">强</td>
<td width="33%" id="strength_H">强</td>  
93![]() </tr>
</tr>  
94![]() </table>
</table>  
95![]()
96![]() </form>
</form> 
 <script language=javascript>
<script language=javascript>  2

3

4

5
 //CharMode函数
//CharMode函数  6
 //测试某个字符是属于哪一类.
//测试某个字符是属于哪一类.  7
 function CharMode(iN){
function CharMode(iN){  8
 if (iN>=48 && iN <=57) //数字
if (iN>=48 && iN <=57) //数字  9
 return 1;
return 1;  10
 if (iN>=65 && iN <=90) //大写字母
if (iN>=65 && iN <=90) //大写字母  11
 return 2;
return 2;  12
 if (iN>=97 && iN <=122) //小写
if (iN>=97 && iN <=122) //小写  13
 return 4;
return 4;  14
 else
else  15
 return 8; //特殊字符
return 8; //特殊字符  16
 }
}  17

18
 //bitTotal函数
//bitTotal函数  19
 //计算出当前密码当中一共有多少种模式
//计算出当前密码当中一共有多少种模式  20
 function bitTotal(num){
function bitTotal(num){  21
 modes=0;
modes=0;  22
 for (i=0;i<4;i++){
for (i=0;i<4;i++){  23
 if (num & 1) modes++;
if (num & 1) modes++;  24
 num>>>=1;
num>>>=1;  25
 }
}  26
 return modes;
return modes;  27
 }
}  28

29
 //checkStrong函数
//checkStrong函数  30
 //返回密码的强度级别
//返回密码的强度级别  31

32
 function checkStrong(sPW){
function checkStrong(sPW){  33
 if (sPW.length<=4)
if (sPW.length<=4)  34
 return 0; //密码太短
return 0; //密码太短  35
 Modes=0;
Modes=0;  36
 for (i=0;i<sPW.length;i++){
for (i=0;i<sPW.length;i++){  37
 //测试每一个字符的类别并统计一共有多少种模式.
//测试每一个字符的类别并统计一共有多少种模式.  38
 Modes|=CharMode(sPW.charCodeAt(i));
Modes|=CharMode(sPW.charCodeAt(i));  39
 }
}  40

41
 return bitTotal(Modes);
return bitTotal(Modes);  42

43
 }
}  44

45
 //pwStrength函数
//pwStrength函数  46
 //当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色
//当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色  47

48
 function pwStrength(pwd){
function pwStrength(pwd){  49
 O_color="#eeeeee";
O_color="#eeeeee";  50
 L_color="#FF0000";
L_color="#FF0000";  51
 M_color="#FF9900";
M_color="#FF9900";  52
 H_color="#33CC00";
H_color="#33CC00";  53
 if (pwd==null||pwd==''){
if (pwd==null||pwd==''){  54
 Lcolor=Mcolor=Hcolor=O_color;
Lcolor=Mcolor=Hcolor=O_color;  55
 }
}  56
 else{
else{  57
 S_level=checkStrong(pwd);
S_level=checkStrong(pwd);  58
 switch(S_level) {
switch(S_level) {  59
 case 0:
case 0:  60
 Lcolor=Mcolor=Hcolor=O_color;
Lcolor=Mcolor=Hcolor=O_color;  61
 case 1:
case 1:  62
 Lcolor=L_color;
Lcolor=L_color;  63
 Mcolor=Hcolor=O_color;
Mcolor=Hcolor=O_color;  64
 break;
break;  65
 case 2:
case 2:  66
 Lcolor=Mcolor=M_color;
Lcolor=Mcolor=M_color;  67
 Hcolor=O_color;
Hcolor=O_color;  68
 break;
break;  69
 default:
default:  70
 Lcolor=Mcolor=Hcolor=H_color;
Lcolor=Mcolor=Hcolor=H_color;  71
 }
}  72
 }
}  73

74
 document.getElementById("strength_L").style.background=Lcolor;
document.getElementById("strength_L").style.background=Lcolor;  75
 document.getElementById("strength_M").style.background=Mcolor;
document.getElementById("strength_M").style.background=Mcolor;  76
 document.getElementById("strength_H").style.background=Hcolor;
document.getElementById("strength_H").style.background=Hcolor;  77
 return;
return;  78
 }
}  79

80
 </script>
</script>  81

82
 <form name=form1 action="" >
<form name=form1 action="" >  83
 输入密码:<input type=password size=10 onKeyUp=pwStrength(this.value) onBlur=pwStrength(this.value)>
输入密码:<input type=password size=10 onKeyUp=pwStrength(this.value) onBlur=pwStrength(this.value)>  84
 <br>密码强度:
<br>密码强度:  85
 <table width="217" border="1" cellspacing="0" cellpadding="1" bordercolor="#cccccc" height="23" style='display:inline'>
<table width="217" border="1" cellspacing="0" cellpadding="1" bordercolor="#cccccc" height="23" style='display:inline'>  86
 <tr align="center" bgcolor="#eeeeee">
<tr align="center" bgcolor="#eeeeee">  87

88
 <td width="33%" id="strength_L">弱</td>
<td width="33%" id="strength_L">弱</td>  89

90
 <td width="33%" id="strength_M">中</td>
<td width="33%" id="strength_M">中</td>  91

92
 <td width="33%" id="strength_H">强</td>
<td width="33%" id="strength_H">强</td>  93
 </tr>
</tr>  94
 </table>
</table>  95

96
 </form>
</form>  
                    
                     
                    
                 
                    
                 



 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号