js评估密码强度
http://www.phpchina.com/14112/viewspace_28701.html
js實現評估密碼的強度
<script?type="text/javascript">
????????//CharMode函數?
????????//測試某個字符是屬于哪一類.?
????????function?CharMode(iN){?
????????????if?(iN>=48?&&?iN?<=57)?//數字?
????????????return?1;?
????????????if?(iN>=65?&&?iN?<=90)?//大寫字母?
????????????return?2;?
????????????if?(iN>=97?&&?iN?<=122)?//小寫?
????????????return?4;?
????????????else?
????????????return?8;?//特殊字符?
????????}?
????????//bitTotal函數?
????????//計算出當前密碼當中一共有多少種模式?
????????function?bitTotal(num){?
????????????modes=0;?
????????????for?(i=0;i<4;i++){?
????????????if?(num?&?1)?modes++;?
????????????num>>>=1;?
????????????}?
????????????return?modes;?
????????}?
????????//checkStrong函數?
????????//返回密碼的強度級別?
????????function?checkStrong(sPW){?
????????????if?(sPW.length<=4)?
????????????return?0;?//密碼太短?
????????????Modes=0;?
????????????for?(i=0;i<sPW.length;i++){?
????????????//測試每一個字符的類別并統計一共有多少種模式.?
????????????Modes|=CharMode(sPW.charCodeAt(i));?
????????}?
????????return?bitTotal(Modes);?
????????}?
????????//pwStrength函數?
????????//當用戶放開鍵盤或密碼輸入框失去焦點時,根據不同的級別顯示不同的顏色?
????????function?pwStrength(pwd){?
????????O_color="#eeeeee";?
????????L_color="#FF0000";?
????????M_color="#FF9900";?
????????H_color="#33CC00";?
????????if?(pwd==null||pwd==''){?
????????Lcolor=Mcolor=Hcolor=O_color;?
????????}?
????????else{?
????????S_level=checkStrong(pwd);?
????????switch(S_level)?{?
????????case?0:?
????????Lcolor=Mcolor=Hcolor=O_color;?
????????case?1:?
????????Lcolor=L_color;?
????????Mcolor=Hcolor=O_color;?
????????break;?
????????case?2:?
????????Lcolor=Mcolor=M_color;?
????????Hcolor=O_color;?
????????break;?
????????default:?
????????Lcolor=Mcolor=Hcolor=H_color;?
????????}?
????????}?
????????document.getElementById("strength_L").style.background=Lcolor;?
????????document.getElementById("strength_M").style.background=Mcolor;?
????????document.getElementById("strength_H").style.background=Hcolor;?
????????return;?
????????}
?</scrīpt>
輸入密碼:<input?type=password?size=10?onKeyUp=pwStrength(this.value)?onBlur=pwStrength(this.value)>?
<br>密碼強度:?
<table?width="217"?border="1"?cellspacing="0"?cellpadding="1"?bordercolor="#cccccc"?height="23"?style='display:inline'>?
<tr?align="center"?bgcolor="#eeeeee">?
<td?width="33%"?id="strength_L">弱</td>?
<td?width="33%"?id="strength_M">中</td>?
<td?width="33%"?id="strength_H">強</td>?
</tr>?
</table>?
</form>
?檢驗密碼強度的JS類
http://www.cnblogs.com/thinhunan/archive/2006/05/14/399656.html
?? <script type="text/javascript">
??????? var PasswordStrength ={
??????????? Level : ["高,實在是高","還行啦","靠,這樣也行"],
??????????? LevelValue : [30,20,0],//強度值
??????????? Factor : [1,2,5],//字符加數,分別為字母,數字,其它
??????????? KindFactor : [0,0,10,20],//密碼含幾種組成的加數
??????????? Regex : [/[a-zA-Z]/g,/\d/g,/[^a-zA-Z0-9]/g] //字符正則數字正則其它正則
??????????? }
??????? PasswordStrength.StrengthValue = function(pwd)
??????? {
??????????? var strengthValue = 0;
??????????? var ComposedKind = 0;
??????????? for(var i = 0 ; i < this.Regex.length;i++)
??????????? {
??????????????? var chars = pwd.match(this.Regex[i]);
??????????????? if(chars != null)
??????????????? {
??????????????????? strengthValue += chars.length * this.Factor[i];
??????????????????? ComposedKind ++;
??????????????? }
??????????? }
??????????? strengthValue += this.KindFactor[ComposedKind];
??????????? return strengthValue;
??????? }
??????? PasswordStrength.StrengthLevel = function(pwd)
??????? {
??????????? var value = this.StrengthValue(pwd);
??????????? for(var i = 0 ; i < this.LevelValue.length ; i ++)
??????????? {
??????????????? if(value >= this.LevelValue[i] )
??????????????????? return this.Level[i];
??????????? }
??????? }
??????
??????? alert(PasswordStrength.StrengthLevel("23"));
??????? alert(PasswordStrength.StrengthLevel("abcd123"));????
??????? alert(PasswordStrength.StrengthLevel("abcd!%23"));?
??? </script>
轉載于:https://www.cnblogs.com/igin/archive/2008/07/24/1250596.html
總結
- 上一篇: 软件测试自动化的成功经验
- 下一篇: 无聊.