this is a extra element for clear the floated element
Javascript实现评估用户输入密码的强度
  • 12/31
  • 2008
黑客技术 | 安全 1721 次查看
  

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

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

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

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

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

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

  具体程序如下(演示地址:http://www.netInter.cn/reg):

  <script language=javascript>

  //程序设计:环球万维,专业提供虚拟主机,域名注册服务

  //网址:http://www.netInter.cn

  //本程序是环球万维原创程序,若需转载,请注明网址及出处,谢谢.

  //以上信息与文章正文是不可分割的一部分,所以如果您要转载本文章,您必须保留以上信息.

  //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;

  }

  </script>

  <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>