asp.net注册密码强度的提示

注册密码强度的提示
  注册的时候密码是很重要的,密码设定的强度直接影响着我们账号的安全,所以这几天没事就写了一个密码强度检测的实例,有两种方式可以实现:

第一种就是通过ajax的扩展控件PasswordStrength,代码如下:

css:

 <style type="text/css">   
<!--
.STYLE1 {font-size: 12px}
-->


 .bartype
{
  color:blue;
  background-color:green;
}
 .barborder
{
 border-style:solid;
 border-width:1px;
 width:200px;
 vertical-align:middle;
}
      .aaa
      {
      background-color:#047AFD;
         color:#ffffff;
         font-family:Arial;
         font-size:9pt;
         padding: 2px 3px 2px 3px;
      }
</style>

页面代码:
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
 <cc1:PasswordStrength ID="PasswordStrength1" runat="server" TargetControlID="TextBox1"
            DisplayPosition="RightSide" TextCssClass="aaa" HelpHandlePosition="BelowLeft"
            MinimumNumericCharacters="2" MinimumSymbolCharacters="2" StrengthIndicatorType="BarIndicator"
            PrefixText="密码强度:" PreferredPasswordLength="10" RequiresUpperAndLowerCaseCharacters="true"
            TextStrengthDescriptions="很差;差;一般;好;很好" CalculationWeightings="40;20;20;20" BarIndicatorCssClass="bartype"
            BarBorderCssClass="barborder">
        </cc1:PasswordStrength>
    <div>
    密码强度检测:
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

 

第二种方法通过js实现,代码如下

Js:

   <script type="text/javascript">
   // arMode函数 
//测试某个字符是属于哪一类. 
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; 

// eckStrong函数 
//返回密码的强度级别 
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.getElementByIdx_x("strength_L").style.background=Lcolor; 
document.getElementByIdx_x("strength_M").style.background=Mcolor; 
document.getElementByIdx_x("strength_H").style.background=Hcolor; 
return; 

   </script>


页面代码:

 密码强度检测:
        <asp:TextBox ID="pwds" runat="server" onKeyUp="pwStrength(this.value)" onBlur="pwStrength(this.value)"></asp:TextBox>
         <table border="1" bordercolor="#cccccc" cellpadding="1" cellspacing="0" height="23"
                                    style="display: inline" width="217">
                                    <tr align="center" bgcolor="#eeeeee">
                                        <td id="strength_L" width="33%">
                                            弱</td>
                                        <td id="strength_M" width="33%">
                                            中</td>
                                        <td id="strength_H" width="33%">
                                            强</td>
                                    </tr>
                                </table>

posted @ 2011-08-01 09:57  我在码头等你  阅读(398)  评论(0)    收藏  举报