JavaScript实现密码强度检测
"该资源提供了一个JavaScript函数,用于检测用户输入的密码强度,并根据密码的长度、字符组成等因素给出强度评分。" JavaScript是Web开发中常用的语言,它可以在客户端进行数据验证,提高用户体验。在这个例子中,我们关注的是一个特定的JavaScript函数——`checkPasswordLevel`,它用于评估密码的强度。 函数`checkPasswordLevel`接受一个参数`strPassword`,这个参数是用户输入的密码字符串。函数首先检查密码的长度,然后根据长度给予不同的分数。如果密码为空,得分是0;如果长度在1到7个字符之间,得分是5;如果长度在8到10个字符之间,得分是10;如果长度超过10个字符,得分是25。这一步是为了确保密码具有足够的复杂性,长度越长,通常密码越难以被破解。 接下来,函数检查密码中是否包含大写字母、小写字母。它使用正则表达式`/[A-Z]{1}/`匹配大写字母,`/[a-z]{1}/`匹配小写字母。如果两者都存在,增加20分,表明密码包含大小写字母的混合,增加了安全性;如果只存在一种,增加10分;如果两者都不存在,则不加分。这样可以确保密码至少包含字母的大小写变化,增强其复杂性。 此外,函数还检查密码中是否包含数字。通过遍历密码字符串,逐个字符进行比较,判断字符是否小于数字'0'或大于'9'。如果找到数字,设置标志位`bDigi`为true,并累加数字长度到`digitalLen`。如果密码中包含数字,会增加额外的分数,因为数字的加入进一步提升了密码的复杂度。 虽然提供的代码片段没有完整展示所有计算过程,但我们可以推断,完整的函数可能还会考虑其他因素,如特殊字符的存在与否,来评估密码强度。例如,特殊字符的加入通常会使密码更难以猜测,从而增加得分。 这个JavaScript实现提供了一个基本的密码强度验证工具,可以作为网页表单验证的一部分,帮助用户创建更安全的密码。通过分析密码的长度、字符类型(大小写字母和数字),它能够为用户提供有关密码安全性的反馈。然而,为了提供更全面的保护,开发者可能还需要扩展这个函数,包括对特殊字符的检查和其他复杂性标准。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<script type="text/javascript">
var $ = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
};
function checkPasswordLevel(strPassword)
{
var result = 0;
if ( strPassword.length == 0)
result += 0;
else if ( strPassword.length<8 && strPassword.length >0 )
result += 5;
else if (strPassword.length>10)
result += 25;
else
result += 10;
//alert("检查长度:"+strPassword.length+"-"+result);
//check letter
var bHave = false;
var bAll = false;
var capital = strPassword.match(/[A-Z]{1}/);//找大写字母
var small = strPassword.match(/[a-z]{1}/);//找小写字母
if ( capital == null && small == null )
{
result += 0; //没有字母
bHave = false;
else if ( capital != null && small != null )
{
result += 20;
bAll = true;
}
else
{
result += 10;
bAll = true;
}
//alert("检查字母:"+result);
//检查数字
var bDigi = false;
var digitalLen = 0;
for ( var i=0; i<strPassword.length; i++)
{
if ( strPassword.charAt(i) <= '9' && strPassword.charAt(i) >= '0' )
{
bDigi = true;
digitalLen += 1;
//alert(strPassword[i]);
}
}
if ( digitalLen==0 )//没有数字
{
result += 0;
bDigi = false;
}
else if (digitalLen>2)//2个数字以上
剩余5页未读,继续阅读
- 粉丝: 1
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ExtJS 2.0 入门教程与开发指南
- 基于TMS320F2812的能量回馈调速系统设计
- SIP协议详解:RFC3261与即时消息RFC3428
- DM642与CMOS图像传感器接口设计与实现
- Windows Embedded CE6.0安装与开发环境搭建指南
- Eclipse插件开发入门与实践指南
- IEEE 802.16-2004标准详解:固定无线宽带WiMax技术
- AIX平台上的数据库性能优化实战
- ESXi 4.1全面配置教程:从网络到安全与实用工具详解
- VMware ESXi Installable与vCenter Server 4.1 安装步骤详解
- TI MSP430超低功耗单片机选型与应用指南
- DOS环境下的DEBUG调试工具详细指南
- VMware vCenter Converter 4.2 安装与管理实战指南
- HP QTP与QC结合构建业务组件自动化测试框架
- JsEclipse安装配置全攻略
- Daubechies小波构造及MATLAB实现