时间: 2021-07-31 作者:daque
我已经引见过一种养护用户口令的本领。然而有些读者群提看法说,很多用户运用很简单被猜出来的口令,所以有很多口令是不犯得着去养护的。干什么在用户运用她们的宠物的名字和她们的华诞动作口令时却全力经心的养护那些口令呢?你不妨并且该当实行一种更强的口令战略。在本期专栏,我将报告你怎样运用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