`
wxq594808632
  • 浏览: 262433 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript密码强度检测源代码

阅读更多

js代码

 

//密码强度; 
function PasswordStrength(showed) {
	this.showed = (typeof (showed) == "boolean") ? showed : true;
	this.styles = new Array();
	this.styles[0] = {backgroundColor:"#EBEBEB", borderLeft:"solid 1px #FFFFFF", borderRight:"solid 1px #BEBEBE", borderBottom:"solid 1px #BEBEBE"};
	this.styles[1] = {backgroundColor:"#FF4545", borderLeft:"solid 1px #FFFFFF", borderRight:"solid 1px #BB2B2B", borderBottom:"solid 1px #BB2B2B"};
	this.styles[2] = {backgroundColor:"#FFD35E", borderLeft:"solid 1px #FFFFFF", borderRight:"solid 1px #E9AE10", borderBottom:"solid 1px #E9AE10"};
	this.styles[3] = {backgroundColor:"#95EB81", borderLeft:"solid 1px #FFFFFF", borderRight:"solid 1px #3BBC1B", borderBottom:"solid 1px #3BBC1B"};
	this.labels = ["\u5f31", "\u4e2d", "\u5f3a"];
	this.divName = "pwd_div_" + Math.ceil(Math.random() * 100000);
	this.minLen = 5;
	this.width = "150px";
	this.height = "16px";
	this.content = "";
	this.selectedIndex = 0;
	this.init();
}
PasswordStrength.prototype.init = function () {
	var s = "<table cellpadding=\"0\" id=\"" + this.divName + "_table\" cellspacing=\"0\" style=\"width:" + this.width + ";height:" + this.height + ";\">";
	s += "<tr>";
	for (var i = 0; i < 3; i++) {
		s += "<td id=\"" + this.divName + "_td_" + i + "\" width=\"33%\" align=\"center\"><span style=\"font-size:1px\"> </span><span id=\"" + this.divName + "_label_" + i + "\" style=\"display:none;font-family: Courier New, Courier, mono;font-size: 12px;color: #000000;\">" + this.labels[i] + "</span></td>";
	}
	s += "</tr>";
	s += "</table>";
	this.content = s;
	if (this.showed) {
		document.write(s);
		this.copyToStyle(this.selectedIndex);
	}
};
PasswordStrength.prototype.copyToObject = function (o1, o2) {
	for (var i in o1) {
		o2[i] = o1[i];
	}
};
PasswordStrength.prototype.copyToStyle = function (id) {
	this.selectedIndex = id;
	for (var i = 0; i < 3; i++) {
		if (i == id - 1) {
			this.$(this.divName + "_label_" + i).style.display = "inline";
		} else {
			this.$(this.divName + "_label_" + i).style.display = "none";
		}
	}
	for (var i = 0; i < id; i++) {
		this.copyToObject(this.styles[id], this.$(this.divName + "_td_" + i).style);
	}
	for (; i < 3; i++) {
		this.copyToObject(this.styles[0], this.$(this.divName + "_td_" + i).style);
	}
};
PasswordStrength.prototype.$ = function (s) {
	return document.getElementById(s);
};
PasswordStrength.prototype.setSize = function (w, h) {
	this.width = w;
	this.height = h;
};
PasswordStrength.prototype.setMinLength = function (n) {
	if (isNaN(n)) {
		return;
	}
	n = Number(n);
	if (n > 1) {
		this.minLength = n;
	}
};
PasswordStrength.prototype.setStyles = function () {
	if (arguments.length == 0) {
		return;
	}
	for (var i = 0; i < arguments.length && i < 4; i++) {
		this.styles[i] = arguments[i];
	}
	this.copyToStyle(this.selectedIndex);
};
PasswordStrength.prototype.write = function (s) {
	if (this.showed) {
		return;
	}
	var n = (s == "string") ? this.$(s) : s;
	if (typeof (n) != "object") {
		return;
	}
	n.innerHTML = this.content;
	this.copyToStyle(this.selectedIndex);
};
PasswordStrength.prototype.update = function (s) {
	if (s.length < this.minLen) {
		this.copyToStyle(0);
		return;
	}
	var ls = -1;
	if (s.match(/[a-z]/ig)) {
		ls++;
	}
	if (s.match(/[0-9]/ig)) {
		ls++;
	}
	if (s.match(/(.[^a-z0-9])/ig)) {
		ls++;
	}
	if (s.length < 6 && ls > 0) {
		ls--;
	}
	switch (ls) {
	  case 0:
		this.copyToStyle(1);
		break;
	  case 1:
		this.copyToStyle(2);
		break;
	  case 2:
		this.copyToStyle(3);
		break;
	  default:
		this.copyToStyle(0);
	}
};

 

 

body

<body> 
 <h4>密码强度检测</h4> 
 <table width="100%" border="0" cellspacing="1" cellpadding="0"> 
 <tr> 
 <td width="100" align="right">强度显示:</td> 
 <td> 
 <script language="javascript"> 
var ps = new PasswordStrength(); 
ps.setSize("200","20"); 
ps.setMinLength(5); 
 </script> 
 </td> 
 </tr> 
 <tr> 
 <td align="right">密码检测:</td> 
 <td><input name="pwd" type="password" id="pwd" style="width:200px" onKeyUp="ps.update(this.value);"></td> 
 </tr> 
 </table> 
 </body>

 

 

 

分享到:
评论

相关推荐

    javascript 密码强度测试

    在提供的压缩包文件"密码强度计算"中,可能包含了实现上述功能的源代码,你可以通过查看和分析这些代码来加深对JavaScript密码强度测试的理解。同时,动手实践编写和修改代码,会让你更加熟练地运用所学知识。记得...

    自动检测密码强度

    文件名为“demo”的压缩包可能包含了一个演示程序,这个程序展示了如何运行和测试密码强度检测功能。用户可以解压并运行这个示例,以直观地理解密码强度检测是如何工作的。这个演示可能包含测试数据,以及如何与源...

    网页设计密码强度测试

    在压缩包中的"密码强度"文件可能是实现上述功能的源代码,包括HTML、CSS和JavaScript文件。开发者可以通过阅读这些文件来理解具体的实现方式,例如,JavaScript文件中可能包含了密码强度测试的逻辑,而HTML文件则...

    密码强度代码及使用说明

    本压缩包提供了一套完整的密码强度检测代码及相关资源,帮助初学者理解并应用到自己的项目中,尤其是对于那些正在学习ASP(Active Server Pages)和JavaScript的开发者。 1. **密码强度检测原理** 密码强度检测...

    passwordStrength的密码强度检测.rar

    在IT行业中,密码强度检测是网络安全的一个重要环节。"passwordStrength的密码强度检测"这个主题主要涉及...通过分析压缩包中的源代码,我们可以深入理解这一过程,并可能学习到如何自定义和优化密码强度检测功能。

    用JavaScript验证密码的强弱源代碼

    这篇博客"用JavaScript验证密码的强弱源代码"提供了一种利用JavaScript进行密码强度检查的方法。 在网页表单中,用户输入的密码通常需要满足一定的强度要求,如长度、字符类型(大小写字母、数字、特殊字符等)的...

    passwdqc的JavaScript端口。密码密码强度检查和策略.zip

    `passwdqc` 是一个用于密码强度检测和策略实施的工具,最初是用 C 语言编写的,而"passwdqc的JavaScript端口"则是将其功能移植到了 JavaScript 语言中,使得在 Web 前端也能进行密码安全性的评估。这个压缩包文件 ...

    带视觉特效的js密码强度检测特效

    - `js` 文件夹:包含了JavaScript源代码,其中包括了密码强度检测的核心逻辑和可能用到的jQuery库。 总结来说,这个项目提供了一个使用JavaScript和jQuery实现的密码强度检测工具,通过动态图像变化向用户实时反馈...

    【JavaScript源代码】JavaScript正则验证密码强弱度的实现方法.docx

    ### JavaScript正则表达式验证密码强度的实现方法 ...本文将详细介绍如何利用JavaScript结合正则表达式来实现这一功能。...通过以上步骤,我们可以构建出一个简单但实用的密码强度检测工具,帮助用户设置更加安全的密码。

    jQuery实用密码强度检测插件passwordRulesHelper.js.zip

    《jQuery实用密码强度检测插件passwordRulesHelper.js详解》 在Web开发中,用户账户的安全性至关重要,其中密码强度的检测是确保用户安全的重要一环。jQuery作为一个轻量级、功能丰富的JavaScript库,广泛应用于...

    密码强度(web)版例子

    - 若有需求,可以集成第三方密码强度检测API,如zxcvbn库,提供更准确的评估。 综上所述,这个"密码强度(web)版例子"涉及到前端交互设计、密码强度评估算法、JavaScript编程、用户安全教育、前后端协作以及前端...

    jQuery 实时检测Input文本框的密码强度.rar

    在网页开发中,用户输入安全性是至关重要的,尤其是在涉及到密码的时候。这个名为"jQuery 实时检测Input...同时,这也是一种实用的前端技术实践,对于学习jQuery和密码强度检测机制的人来说,是一个很好的学习资源。

    基于jQuery输入密码文本框不同颜色渐变显示密码强度特效源码.zip

    该资源是一个前端开发中的代码示例,主要展示了如何利用jQuery库来实现一个具有密码强度检测功能的输入框。在用户输入密码时,文本框会根据密码的复杂度呈现出不同的颜色渐变,以此来提示用户密码的安全程度。这个...

    兼容所有游览器密码强度 js

    通常,密码强度检测会考虑因素如长度、字符种类(包括大小写字母、数字、特殊字符)、是否包含常见词汇等。 在实际应用中,这样的密码强度检测库通常会提供以下功能: 1. **实时反馈**:当用户输入密码时,它会...

    用于密码强度栏的AngularJS指令_JavaScript_HTML_下载.zip

    1. `src`: 这个目录可能包含了指令的主要源代码,包括`.js`文件,这些文件定义了指令的行为,以及可能的样式文件(`.css`)来定制视觉效果。 2. `demo`: 示例或测试页面,展示如何在实际项目中使用这个指令。通常,...

    基于jquery实现的密码强度正则表达式源码.zip

    在密码强度检测中,jQuery可以用来监听用户在密码输入框中的键入事件,实时更新密码强度指示器的状态。 正则表达式(Regular Expression)是用于匹配字符串模式的强大的工具。在这个项目中,正则表达式被用来定义...

    个人博客html+css+JavaScript完整代码

    3. **表单验证**:可以验证用户输入,如邮箱格式、密码强度等,提供即时反馈。 4. **加载更多内容**:分页加载文章,减少页面加载时间。 5. **动态加载和隐藏内容**:如评论系统,可以按需加载和显示评论。 6. **...

    roseonly模拟网站源代码

    在这个项目中,JavaScript的异步验证功能可能是对用户输入进行实时检查,如邮箱格式验证、密码强度检测等,确保数据的正确性。 最后,提到的"用户中心页"和"登录注册功能完善"意味着系统具备用户账户管理功能。用户...

    VueSimplePasswordMeter是一个简单的密码强度计组件,.zip

    VueSimplePasswordMeter是一个基于Vue.js框架的轻量级组件,专为前端开发者设计,用于在网页上实现密码强度检测功能。这个组件可以帮助用户在输入密码时实时评估密码的安全性,从而提升在线账户的安全水平。Vue.js是...

    zxcvbn密码强度估计库的Ocaml绑定_OCaml_C_下载.zip

    "ocaml-zxcvbn-master"很可能包含的是源代码仓库的主分支,可能包含以下组成部分: 1. **README**:介绍如何安装和使用绑定的文档。 2. **src**:包含 OCaml 代码,实现了zxcvbn的接口和C库的绑定。 3. **examples*...

Global site tag (gtag.js) - Google Analytics