[JS][Function]Check Password Strong

判別 # 密碼強度

<Form>

<form name="form1" action="" >  
輸入密碼: <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 Code ---

 

//判斷字元屬性  
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; //特殊字元  
}
  
  
//統計所有密碼模式  
function bitTotal(num){  
modes=0;  
for (i=0;i<4;i++){  
if (num & 1) modes++;  
num>>>=1;  
}
  
return modes;  
}
  
  
  
//顯示密碼的強度級別  
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);  
}
  
  
//顯示級別顏色狀況  
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;  
}

 Check_PW.rar