Javascript評估使用者輸入密碼的強度的方法 代碼

來源:互聯網
上載者:User

 用Javascript評估使用者輸入密碼的強度密碼已經是我們生活工作中必不可少的工具,但一個不安全的密碼有又有可能會給我們造成不必要的損失。

作為網站設計者,如果我們在網頁中能對使用者輸入的密碼進行安全評估,並顯示出相應的提示資訊,那麼對使用者佈建一個安全的密碼將有很大協助。同時也使得網站更具人性化,更有吸引力.

什麼是一個安全的密碼呢?本程式按以下的方式進行評估.
 1.如果密碼少於5位,那麼就認為這是一個弱密碼.
 2.如果密碼只由數字、小寫字母、大寫字母或其它特殊符號當中的一種組成,則認為這是一個弱密碼.
3.如果密碼由數字、小寫字母、大寫字母或其它特殊符號當中的兩種組成,則認為這是一個中度安全的密碼.
 4.如果密碼由數字、小寫字母、大寫字母或其它特殊符號當中的三種以上組成,則認為這是一個比較安全的密碼.
本程式將根據使用者輸入的密碼分別顯示不同的顏色表示密碼的強度,具體程式如下:

 
<html>
<head>
<title>js測試密碼強度</title>
<script type="text/javascript">
//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>
</head>
<body>
<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>
</body>
</html>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.