首頁 >web前端 >js教程 >JS實現至少包含字母、大小寫數字、字元的密碼等級的兩種方法_javascript技巧

JS實現至少包含字母、大小寫數字、字元的密碼等級的兩種方法_javascript技巧

WBOY
WBOY原創
2016-05-16 16:16:141854瀏覽

本文實例講述了JS實現至少包含字母、大小寫數字、字元的密碼等級的兩種方法。分享給大家供大家參考。具體如下:

前言

密碼,如果設定的太簡單,很容易就被攻破,所以很多網站將密碼設定的要求設定的挺嚴格,一般是字母、數字、字元3選2,區分大小寫。對於設定得太簡單的密碼,予以錯誤提示。或以密碼等級(低中高)顯示,讓使用者設定高級密碼。那如何利用JS實現呢?

實作程式碼如下:

function passwordLevel(password) {
 var Modes = 0;
 for (i = 0; i < password.length; i++) {
 Modes |= CharMode(password.charCodeAt(i));
 }
 return bitTotal(Modes);
 //CharMode函数
 function CharMode(iN) {
 if (iN >= 48 && iN <= 57)//数字
  return 1;
 if (iN >= 65 && iN <= 90) //大写字母
  return 2;
 if ((iN >= 97 && iN <= 122) || (iN >= 65 && iN <= 90))
 //大小写
  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;
 }
}

使用

普通使用

使用語法:passwordLevel(string)
驗證規則:數字、大寫字母、小寫字母、特殊字元
函數結果:傳回密碼中包含的規則數
運行範例:

passwordLevel("123456") //返回1

passwordLevel("Abc'123456") //返回4

結合jquery.validate.js使用:

//添加验证方法:至少包含两种规则

$.validator.addMethod("strongPsw",function(value,element){
 if(passwordLevel(value)==1){returnfalse;}
 returntrue
},"格式不符合");
//开始验证

$(".form").validate({
 rules:{
 pwd:{
  required:true, //必填
  minlength:6, //最小长度
  maxlength:32, //最大长度
  strongPsw:true, //密码强度
 },
 repwd:{
  required:true,
  minlength:6,
  maxlength:32,
  equalTo:"#pwd" //再次填写密码需一致
 }
 }
});

關於密碼產生與強度偵測有興趣的朋友也可參考線上工具:

密碼安全性線上偵測

高強度密碼產生器

短鏈(短網址)線上產生工具

希望本文所述對大家的javascript程式設計有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn