//密码强度;
function PasswordStrength(showed){    
    
this.showed = (typeof(showed) == "boolean")?showed:true;
    
this.styles = new Array();    
    
this.styles[0= {backgroundColor:"#EBEBEB",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #BEBEBE",borderBottom:"solid 1px #BEBEBE"};    
    
this.styles[1= {backgroundColor:"#FF4545",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #BB2B2B",borderBottom:"solid 1px #BB2B2B"};
    
this.styles[2= {backgroundColor:"#FFD35E",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #E9AE10",borderBottom:"solid 1px #E9AE10"};
    
this.styles[3= {backgroundColor:"#95EB81",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #3BBC1B",borderBottom:"solid 1px #3BBC1B"};
    
    
this.labels= ["","",""];

    
this.divName = "pwd_div_"+Math.ceil(Math.random()*100000);
    
this.minLen = 6;
    
    
this.width = "150px";
    
this.height = "13px";
    
    
this.content = "";
    
    
this.selectedIndex = 0;
    
    
this.init();    
}

PasswordStrength.prototype.init 
= function(){
    
var s = '<table cellpadding="0" id="'+this.divName+'_table" cellspacing="0" style="width:'+this.width+';height:'+this.height+';">';
    s 
+= '<tr>';
    
for(var i=0;i<3;i++){
        s 
+= '<td id="'+this.divName+'_td_'+i+'" width="33%" align="center"><span style="font-size:1px">&nbsp;</span><span id="'+this.divName+'_label_'+i+'" style="display:none;font-family: Courier New, Courier, mono;font-size: 12px;color: #000000;">'+this.labels[i]+'</span></td>';
    }
    
    s 
+= '</tr>';
    s 
+= '</table>';
    
this.content = s;
    
if(this.showed){
        document.write(s);
        
this.copyToStyle(this.selectedIndex);
    }
    
}

PasswordStrength.prototype.copyToObject 
= function(o1,o2){
    
for(var i in o1){
        o2[i] 
= o1[i];
    }

}

PasswordStrength.prototype.copyToStyle 
= function(id){
    
this.selectedIndex = id;
    
for(var i=0;i<3;i++){
        
if(i == id-1){
            
this.$(this.divName+"_label_"+i).style.display = "inline";
        }
else{
            
this.$(this.divName+"_label_"+i).style.display = "none";
        }

    }

    
for(var i=0;i<id;i++){
        
this.copyToObject(this.styles[id],this.$(this.divName+"_td_"+i).style);            
    }

    
for(;i<3;i++){
        
this.copyToObject(this.styles[0],this.$(this.divName+"_td_"+i).style);
    }

}

PasswordStrength.prototype.$ 
= function(s){
    
return document.getElementById(s);
}

PasswordStrength.prototype.setSize 
= function(w,h){
    
this.width = w;
    
this.height = h;
}

PasswordStrength.prototype.setMinLength 
= function(n){
    
if(isNaN(n)){
        
return ;
    }

    n 
= Number(n);
    
if(n>1){
        
this.minLength = n;
    }

}

PasswordStrength.prototype.setStyles 
= function(){
    
if(arguments.length == 0){
        
return ;
    }

    
for(var i=0;i<arguments.length && i < 4;i++){
        
this.styles[i] = arguments[i];
    }

    
this.copyToStyle(this.selectedIndex);
}

PasswordStrength.prototype.write 
= function(s){
    
if(this.showed){
        
return ;
    }

    
var n = (s == 'string') ? this.$(s) : s;
    
if(typeof(n) != "object"){
        
return ;
    }

    n.innerHTML 
= this.content;
    
this.copyToStyle(this.selectedIndex);
}

PasswordStrength.prototype.update 
= function(s){
    
if(s.length < this.minLen){
        
this.copyToStyle(0);
        
return;
    }

    
var ls = -1;
    
if (s.match(/[a-z]/ig)){
        ls
++;
    }

    
if (s.match(/[0-9]/ig)){
        ls
++;
    }

     
if(/\d/.test(s)&&/[a-z]/.test(s)&&/[A-Z]/.test(s))
    
{
        ls
++;
    }
   
//if(s.match((([A-Za-z]+\d+) ¦(\d+[A-Za-z]+))+$/))
//
{
//
    ls++;
//
}
    if (s.length < 6 && ls > 0){
        ls
--;
    }

     
switch(ls) 
         
case 0:
             
this.copyToStyle(1);
             
break;
         
case 1:
             
this.copyToStyle(2);
             
break;
         
case 2:
             
this.copyToStyle(3);
             
break;
         
default:
             
this.copyToStyle(0);
     }

}

            <asp:TextBox ID="txt_密码" runat="server" Width="150px" TextMode="Password" onfocus="focuspwd();"  onChange="PStrong();" 
            onblur
="return isRegisterPwd();"></asp:TextBox>

<tr>
  
<td align="right">密码强度&nbsp;&nbsp;&nbsp;</td>
  
<td align="left">
  
<script>
            
//设置密码强弱显示的地方
            var ps = new PasswordStrength();
            ps.setSize(
"185","15");
            ps.setMinLength(
6);
        
</script></td>
  
<td align="left"><div class="noclick">建议采用易记、难猜的英文数字组合。<href="#" style="color:#FF0000;" onmouseover="ctpassword();" onmouseout="ctpassword();">如何设置高强度密码</a></div>
  
<div id="setpassword" name="setpassword" style=" width:410px;padding:5px; border:1px solid #A9BAD3; position:absolute; z-index:10; background:#FFFFFF; display:none;">
    
<table cellspacing="0" cellpadding="0">
      
<tr>
        
<td><strong>为了您的帐户安全,请尽量设置复杂密码,不要有规律。您容易记忆的密码,同时也很可能被轻易猜出来。请参考以下建议: </strong></td>
      
</tr>
      
<tr>
        
<td><style="line-height:20px;">
          1、密码长度为6到20个字符;
<br />
          2、使用英文字母和数字的组合,如wdvt058、8465sdrj等,尽量不要有规律;
<br />
          3、千万别把您的密码设置成以下这样,安全性过低:
<br />
          a.密码和会员登录名名完全一致;
<br />
          b.密码和您的联系方式“电话”、“传真”、“手机”、“邮编”、“邮箱”的任何一个一致,如:85027110、075585027110;
<br />
          c.密码用连续数字或字母,如:234567、987654、abcdef;
<br />
          d.密码用同一个字母或者数字,如:88888888,aaaaaa;
<br />
          e.密码用会员登录名或邮件地址中的一部分,如您的会员登录名是carry770815,勿使用770815作为密码。
<br />
          f.密码用您的姓名、单位名称、或其他任何可轻易获得的信息。如:liudehua、sjoem;
<br />
          g.密码用简单有规律的数字,如:789456、123321;
<br />
        
</p></td>
      
</tr>
    
</table>
  
</div></td>
</tr>
posted on 2007-11-30 09:00  小角色  阅读(408)  评论(0)    收藏  举报