电脑技术学习

来自Google的密码强度Javascript验证代码

dn001
; 1 <script type="text/javascript">
2 var agt = navigator.userAgent.toLowerCase();
3 var is_op = (agt.indexOf("opera") != -1);
4 var is_ie = (agt.indexOf("msie") != -1) && document.all && !is_op;
5 var is_ie5 = (agt.indexOf("msie 5") != -1) && document.all && !is_op;
6
7 function CreateXmlHttpReq(handler) {
8var xmlhttp = null;
9if (is_ie) {
10;;var control = (is_ie5) ? "Microsoft.XMLHTTP" : "Msxml2.XMLHTTP";
11;;try {
12;;;;xmlhttp = new ActiveXObject(control);
13;;;;xmlhttp.onreadystatechange = handler;
14;;} catch (ex) {
15;;;;alert("You need to enable active scripting and activeX controls")
16;;}
17
18} else {
19;;xmlhttp = new XMLHttpRequest();
20;;xmlhttp.onload = handler;
21;;xmlhttp.onerror = handler;
22}
23return xmlhttp;
24 }
25
26
27 function XmlHttpPOST(xmlhttp, url, data) {
28try {
29;;xmlhttp.open("POST", url, true);
30;;xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
31;;xmlhttp.send(data);
32
33} catch (ex) {
34;;// do nothing
35}
36 }
37
38
39 var myxmlhttp;
40 ratingMsgs = new Array(6);
41 ratingMsgColors = new Array(6);
42 barColors = new Array(6);
43
44 ratingMsgs[0] = "太短";
45 ratingMsgs[1] = "弱";
46 ratingMsgs[2] = "一般";
47 ratingMsgs[3] = "很好";
48 ratingMsgs[4] = "极佳";
49 ratingMsgs[5] = "未评级";
50
51 ratingMsgColors[0] = "#676767";
52 ratingMsgColors[1] = "#aa0033";
53 ratingMsgColors[2] = "#f5ac00";
54 ratingMsgColors[3] = "#6699cc";
55 ratingMsgColors[4] = "#008000";
56 ratingMsgColors[5] = "#676767";
57
58 barColors[0] = "#dddddd";
59 barColors[1] = "#aa0033";
60 barColors[2] = "#ffcc33";
61 barColors[3] = "#6699cc";
62 barColors[4] = "#008000";
63 barColors[5] = "#676767";
64
65 function CreateRatePasswdReq ()
66 {
67 var passwd = getElement('Passwd').value;
68 var email = getElement('Email').value;
69 var lastname = getElement('LastName').value;
70 var firstname = getElement('FirstName').value;
71 var min_passwd_len = 6;
72
73
74 if (passwd.length < min_passwd_len);
75 {
76if (passwd.length > 0)
77{
78;;DrawBar(0);
79}
80else
81{
82;;ResetBar();
83}
84 }
85 else
86 {
87;;passwd = escape(passwd);
88;;var params = 'Passwd='+passwd+'&Email='+email+'&FirstName='+firstname+'&LastName='+lastname;
89;;myxmlhttp = CreateXmlHttpReq(RatePasswdXmlHttpHandler);
90;;XmlHttpPOST(myxmlhttp, "https://www.google.com/accounts/RatePassword", params);
91 }
92 }
93
94 function getElement(name)
95 {
96if (document.all)
97{
98;;;;return document.all(name);
99}
100return document.getElementById(name);
101 }
102
103 function RatePasswdXmlHttpHandler()
104 { // Can't check status since safari doesn't support it
105if (myxmlhttp.readyState != 4)
106{
107return;
108}
109rating = parseInt(myxmlhttp.responseText);
110DrawBar(rating);
111 }
112
113 function DrawBar(rating)
114 {
115 var posbar = getElement('posBar');
116 var negbar = getElement('negBar');
117 var passwdRating = getElement('passwdRating');
118 var barLength = getElement('passwdBar').width;
119
120 if (rating >= 0 && rating <= 4)
121 {;;;;//We successfully got a rating
122;;posbar.style.width = barLength / 4 * rating + "px";
123;;negbar.style.width = barLength / 4 * (4 - rating) + "px";
124 }
125 else
126 {
127;;posbar.style.width = "0px";
128;;negbar.style.width = barLength + "px";
129;;rating = 5; // Not rated Rating
130 }
131 posbar.style.background = barColors[rating]
132 passwdRating.innerHTML = "<font color='" + ratingMsgColors[rating] +"'>" + ratingMsgs[rating] + "</font>";
133 }
134
135
136//Resets the password strength bar back to its initial state without any message showing.
137function ResetBar()
138{
139;;var posbar = getElement('posBar');
140;;var negbar = getElement('negBar');
141;;var passwdRating = getElement('passwdRating');
142;;var barLength = getElement('passwdBar').width;
143
144;;posbar.style.width = "0px";
145;;negbar.style.width = barLength + "px";
146;;passwdRating.innerHTML = "";
147}
148
149 </script>
150
151 <table width="60%"; border="0">
152;;<tr>
153 <td width="30%">
154;;<input type="hidden" value="" id="FirstName" size="30">
155;;<input type="hidden" value="" id="LastName" size="30">
156;;<input type="hidden" id="Email" value="" size="30">
157;;<input type="password" id="Passwd" value="" onkeyup="CreateRatePasswdReq()" size="30">
158 </td>
159 <td width="70%">
160;;<table cellpadding="0" cellspacing="0" border="0">
161 <tr>
162;;<td width="200" id="passwdBar">
163 <table cellpadding="0" cellspacing="0" border="0">
164;;<tr>
165 <td nowrap valign="top"; height="15px"><font color="#808080" size="-1" face="Arial, sans-serif"><div id="passwdRating"></div></font></td>
166;;</tr>
167;;<tr>
168 <td height="3px"></td>
169;;</tr>
170;;<tr>
171 <td colspan="2">
172;;<table cellpadding="0" bgcolor="#ffffff" cellspacing="0" border="0" width="200">
173 <tr>
174;;<td width="0%" id="posBar" bgcolor="#e0e0e0" height="4px"></td>
175;;<td width="100%" id="negBar" bgcolor="#e0e0e0" height="4px"></td>
176 </tr>
177;;</table>
178 </td>
179;;</tr>
180 </table>
181;;</td>
182 </tr>
183;;</table>
184 </td>
185;;</tr>
186 </table>
187