javascript评估用户输入密码的强度

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

posted on 2010-11-02 21:35 麟德 阅读(219) 评论(0)  编辑  收藏 所属分类: html


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿

随笔分类(2)

随笔档案(2)

文章分类(23)

文章档案(23)

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜