|
|
|
javascript口令检查器 |
|
|
| http://www.iyit.net 日期:2005-11-24 17:47:50 来源:易特网络技术 点击: |
我曾经介绍过一种保护用户口令的方法。但是有些读者提意见说,许多用户使用很容易被猜出来的口令,因此有很多口令是不值得去保护的。为什么在用户使用他们的宠物的名字和他们的生日作为口令时却尽力精心的保护这些口令呢?你能够而且应该执行一种更强的口令策略。在本期专栏,我将告诉你如何使用javascript。 口令策略是一组规则,用来确定哪些口令可以接受,哪些不能接受。典型的策略要求口令长度为八个字符,包含至少一个字母、一个数字和一个特殊字符,而且这些字符都应该是可打印字符。 这个口令检查脚本执行三项检查。如果三项中有任何一项不符合要求,它都会向用户提示错误。 确保口令长度符合规定。 确保口令中只有字母、数字和特殊字符。 确保口令中至少有一个字母、一个数字和一个特殊字符。 首先在头部< head> < /head>中加入以下内容: < script language="javascript" src="pwpolicy.js"> < /script> < script language="javascript" src="pwchecker.js"> < /script> 你可以像下面这样设置“选择标识和口令”按钮的onclick句柄,以调用口令检查脚本: < input type="button" name="pwbutton" value="select id and password" onclick="checkpassword(´pwform´,´pwfield´)">
checkpassword()函数在pwchecker.js中定义。第二个.js文件pwpolicy.js指定口令策略。 // passwordchecker
// this is the main password checking function. function checkpassword(formname,passwordfieldname) { pw = window.document.forms[formname].elements[passwordfieldname].value if(checkpasswordlength(pw)) if(checkpasswordcharsallowed(pw)) if(checkminpasswordchars(pw)) window.document.forms[formname].submit(); }
// check to make sure the password is at least minchars characters long. function checkpasswordlength(pw) { if(pw.lengthalert("your password is less than "+minchars+" characters!") alert("you must choose a password that is at least "+minchars+" characters in length.") return false } return true }
// check to make sure that all of the characters in the password are allowed. function checkpasswordcharsallowed(pw) { for(var i=0;ivar ch = pw.charat(i); if((isalpha(ch) && !lettersallowed)) { alert("your password contains a letter!") alert("letters are not allowed in passwords.") return false }else if(isnumber(ch) && !numbersallowed) { alert("your password contains a number!") alert("numbers are not allowed in passwords.") return false }else if(isspecial(ch) && !specialallowed) { alert("your password contains a special character!") alert("special characters are not allowed in passwords.") return false }else if(!isalpha(ch) && !isnumber(ch) && !isspecial(ch)) { alert("your password contains a non-printable character!") alert("non-printable characters are not allowed in passwords.") return false } } return true }
// check to make sure the password has the required number of alphabetic, numeric, and // special characters. function checkminpasswordchars(pw) { var alpha = 0 var numeric = 0 var special = 0 for(var i=0;ivar ch = pw.charat(i) if(isalpha(ch)) ++alpha else if(isnumber(ch)) ++numeric else if(isspecial(ch)) ++special } var errmsg = "your password does not contain the minimum number " if(alpha < minletters) { errmsg += "(" + minletters + ") " errmsg += "of alphabetic characters!" alert(errmsg) return false }else if(numeric < minnumbers) { errmsg += "(" + minnumbers + ") " errmsg += "of numeric characters!" alert(errmsg) return false }else if(special < minspecial) { errmsg += "(" + minspecial + ") " errmsg += "of special characters!" alert(errmsg) return false } return true }
// functions used for character identification. function isalpha(ch) { if(ch >= "a" && ch <= "z") return true if(ch >= "a" && ch <= "z") return true return false }
function isnumber(ch) { if(ch >= "0" && ch <= "9") return true return false }
function isspecial(ch) { var special = new array("!",""","#","$","%","&","´","(",")","*","+",",","-",".","/", ":",";","<","=",">","?","@","[","\","]","^","_","`","{","|","}","~") for(var i=0;iif(ch == special[i]) return true return false }
// password policy var minchars = 8 var lettersallowed = true var numbersallowed = true var specialallowed = true var minletters = 1 var minnumbers = 1 var minspecial = 1
|
上一篇:vc文件扩展名解读大全
下一篇:java代码编写的30条建议
[发送给好友] [打印本页] [关闭窗口] [返回顶部] 转载请注明来源:http://www.iyit.net |
|
| 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 责任编辑: |
投稿作者: 易特网络技术 |
| 信息来源: 易特网络技术 |
录入时间: 2005-11-24 17:47:50 |
| 浏览次数: |
投稿信箱: shtghy@163.com |
|
|
|
|
|