用Javascript评估用户输入密码的强度

 

本程序按以下的方式进行评估.

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

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

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

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

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

 

< script  language =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 >   

< 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 >  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值