转载--用javascript实现评估用户输入密码的强度

None.gif<script language=javascript>
None.gif
None.gif
//程序设计:环球万维 netInter.cn
None.gif//
本程序是环球万维原创程序,若需转载,请注明网址及出处,谢谢.
None.gif//
以上信息与文章正文是不可分割的一部分,所以如果您要转载本文章,您必须保留以上信息.
None.gif

None.gif
//CharMode函数
None.gif//
测试某个字符是属于哪一类.
ExpandedBlockStart.gifContractedBlock.gif
function CharMode(iN)dot.gif{
InBlock.gif
if (iN>=48 && iN <=57//数字
InBlock.gif
return 1
InBlock.gif
if (iN>=65 && iN <=90//大写字母
InBlock.gif
return 2;
InBlock.gif
if (iN>=97 && iN <=122//小写
InBlock.gif
return 4;
InBlock.gif
else
InBlock.gif
return 8//特殊字符
ExpandedBlockEnd.gif
}

None.gif
None.gif
//bitTotal函数
None.gif//
计算出当前密码当中一共有多少种模式
ExpandedBlockStart.gifContractedBlock.gif
function bitTotal(num)dot.gif{
InBlock.gifmodes
=0;
ExpandedSubBlockStart.gifContractedSubBlock.gif
for (i=0;i<4;i++)dot.gif{
InBlock.gif
if (num & 1) modes++;
InBlock.gifnum
>>>=1;
ExpandedSubBlockEnd.gif}

InBlock.gif
return modes;
ExpandedBlockEnd.gif}

None.gif
None.gif
//checkStrong函数
None.gif//
返回密码的强度级别
None.gif

ExpandedBlockStart.gifContractedBlock.gif
function checkStrong(sPW)dot.gif{
InBlock.gif
if (sPW.length<=4)
InBlock.gif
return 0//密码太短
InBlock.gif
Modes=0;
ExpandedSubBlockStart.gifContractedSubBlock.gif
for (i=0;i<sPW.length;i++)dot.gif{
InBlock.gif
//测试每一个字符的类别并统计一共有多少种模式.
InBlock.gif
Modes|=CharMode(sPW.charCodeAt(i));
ExpandedSubBlockEnd.gif}

InBlock.gif
InBlock.gif
return bitTotal(Modes);
InBlock.gif
ExpandedBlockEnd.gif}
 
None.gif
None.gif
//pwStrength函数
None.gif//
当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色
None.gif

ExpandedBlockStart.gifContractedBlock.gif
function pwStrength(pwd)dot.gif{
InBlock.gifO_color
="#eeeeee";
InBlock.gifL_color
="#FF0000";
InBlock.gifM_color
="#FF9900";
InBlock.gifH_color
="#33CC00";
ExpandedSubBlockStart.gifContractedSubBlock.gif
if (pwd==null||pwd=='')dot.gif{
InBlock.gifLcolor
=Mcolor=Hcolor=O_color;
ExpandedSubBlockEnd.gif}
 
ExpandedSubBlockStart.gifContractedSubBlock.gif
elsedot.gif{
InBlock.gifS_level
=checkStrong(pwd);
ExpandedSubBlockStart.gifContractedSubBlock.gif
switch(S_level) dot.gif{
InBlock.gif
case 0:
InBlock.gifLcolor
=Mcolor=Hcolor=O_color; 
InBlock.gif
case 1:
InBlock.gifLcolor
=L_color;
InBlock.gifMcolor
=Hcolor=O_color;
InBlock.gif
break;
InBlock.gif
case 2:
InBlock.gifLcolor
=Mcolor=M_color;
InBlock.gifHcolor
=O_color;
InBlock.gif
break;
InBlock.gif
default:
InBlock.gifLcolor
=Mcolor=Hcolor=H_color;
ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}
 
InBlock.gif
InBlock.gifdocument.getElementById(
"strength_L").style.background=Lcolor;
InBlock.gifdocument.getElementById(
"strength_M").style.background=Mcolor;
InBlock.gifdocument.getElementById(
"strength_H").style.background=Hcolor;
InBlock.gif
return;
ExpandedBlockEnd.gif}

None.gif
None.gif
</script>
None.gif
None.gif
<form name=form1 action="" >
None.gif输入密码:
<input type=password size=10 onKeyUp=pwStrength(this.value) onBlur=pwStrength(this.value)>
None.gif
<br>密码强度:
None.gif
<table width="217" border="1" cellspacing="0" cellpadding="1" bordercolor="#cccccc" height="23" style='display:inline'>
None.gif
<tr align="center" bgcolor="#eeeeee"> 
None.gif
None.gif
<td width="33%" id="strength_L"></td>
None.gif
None.gif
<td width="33%" id="strength_M"></td>
None.gif
None.gif
<td width="33%" id="strength_H"></td>
None.gif
</tr>
None.gif
</table>
None.gif
None.gif
</form>
None.gif

转载于:https://www.cnblogs.com/EasyLive2006/archive/2007/02/27/658521.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值