评估密码强度

 密码已经是我们生活工作中必不可少的工具,但一个不安全的密码有又有可能会给我们造成不必要的损失。作为网站设计者,如果我们在网页中能对用户输入的密码进行安全评估,并显示出相应的提示信息,那么对用户设置一个安全的密码将有很大帮助。同时也使得网站更具人性化,更有吸引力.

什么是一个安全的密码呢?本程序按以下的方式进行评估.

1.如果密码少于5位,那么就认为这是一个弱密码.

2.如果密码只由数字、小写字母、大写字母或其它特殊符号当中的一种组成,则认为这是一个弱密码.

3.如果密码由数字、小写字母、大写字母或其它特殊符号当中的两种组成,则认为这是一个中度安全的密码.

4.如果密码由数字、小写字母、大写字母或其它特殊符号当中的三种以上组成,则认为这是一个比较安全的密码.

本程序将根据用户输入的密码分别显示不同的颜色表示密码的强度,具体程序如下:

以下是引用片段:

  1. <SCRIPT language=javascript>    
  2.   
  3.     //CharMode函数    
  4.     //测试某个字符是属于哪一类.    
  5.     function CharMode(iN)   
  6.     {    
  7.         if (iN>=48 && iN <=57) //数字    
  8.         return 1;    
  9.         if (iN>=65 && iN <=90) //大写字母    
  10.         return 2;    
  11.         if (iN>=97 && iN <=122) //小写    
  12.         return 4;    
  13.         else    
  14.         return 8; //特殊字符    
  15.     }    
  16.        
  17.     //bitTotal函数    
  18.     //计算出当前密码当中一共有多少种模式    
  19.     function bitTotal(num)   
  20.     {    
  21.         modes=0;    
  22.         for (i=0;i<4;i++)   
  23.         {    
  24.             if (num & 1) modes++;    
  25.             num>>=1;    
  26.         }    
  27.         return modes;    
  28.     }    
  29.        
  30.     //checkStrong函数    
  31.     //返回密码的强度级别    
  32.        
  33.     function checkStrong(sPW)   
  34.     {    
  35.         if (sPW.length<=4)    
  36.         return 0; //密码太短    
  37.         Modes=0;    
  38.         for (i=0;i<sPW.length;i++)   
  39.         {    
  40.             //测试每一个字符的类别并统计一共有多少种模式.    
  41.             Modes|=CharMode(sPW.charCodeAt(i));    
  42.         }    
  43.         return bitTotal(Modes);    
  44.     }    
  45.        
  46.     //pwStrength函数    
  47.     //当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色    
  48.        
  49.     function pwStrength(pwd)   
  50.     {    
  51.         O_color="#eeeeee";    
  52.         L_color="#FF0000";    
  53.         M_color="#FF9900";    
  54.         H_color="#33CC00";    
  55.         if (pwd==null||pwd=="")   
  56.         {    
  57.             Lcolor=Mcolor=Hcolor=O_color;    
  58.         }    
  59.         else  
  60.         {    
  61.             S_level=checkStrong(pwd);    
  62.             switch(S_level)   
  63.             {    
  64.                 case 0:    
  65.                 Lcolor=Mcolor=Hcolor=O_color;    
  66.                 case 1:    
  67.                 Lcolor=L_color;    
  68.                 Mcolor=Hcolor=O_color;    
  69.                 break;    
  70.                 case 2:    
  71.                 Lcolor=Mcolor=M_color;    
  72.                 Hcolor=O_color;    
  73.                 break;    
  74.                 default:    
  75.                 Lcolor=Mcolor=Hcolor=H_color;    
  76.             }    
  77.         }    
  78.         document.getElementById("strength_L").style.background=Lcolor;    
  79.         document.getElementById("strength_M").style.background=Mcolor;    
  80.         document.getElementById("strength_H").style.background=Hcolor;    
  81.         return;    
  82.     }    
  83.   
  84. </SCRIPT>    
  85.   
  86.     <FORM name="form1" action=""><P>    
  87.     输入密码:</P><P>   
  88.     <INPUT οnblur=pwStrength(this.value) οnkeyup=pwStrength(this.value) type=password size=10 value="">    
  89.     <BR>    密码强度: </P><P>   
  90.     <TABLE style="DISPLAY: inline" borderColor=#cccccc height=23 cellSpacing=0 cellPadding=1 width=217 border=1><TBODY><TR align=middle bgColor=#eeeeee><TD id=strength_L width="33%">弱</TD><TD id=strength_M width="33%">中</TD><TD id=strength_H width="33%">强</TD></TR></TBODY></TABLE>    
  91.     </P><P> </P><P> </P></FORM>   
  92. <PRE></PRE>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值