js密码强度

简介: 密码强度检测 body { font: 12px/1.5 Arial; } input { float: left; font-size: 12px; width: 150px; font...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>密码强度检测</title>
		<style type="text/css">
			body {
				font: 12px/1.5 Arial;
			}
			input {
				float: left;
				font-size: 12px;
				width: 150px;
				font-family: arial;
				border: 1px solid #ccc;
				padding: 3px;
			}
			input.correct {
				border: 1px solid green;
			}
			input.error {
				border: 1px solid red;
			}
			#tips {
				float: left;
				margin: 2px 0 0 20px;
			}
			#tips span {
				float: left;
				width: 50px;
				height: 20px;
				color: #fff;
				overflow: hidden;
				background: #ccc;
				margin-right: 2px;
				line-height: 20px;
				text-align: center;
			}
			#tips.s1 .active {
				background: #f30;
			}
			#tips.s2 .active {
				background: #fc0;
			}
			#tips.s3 .active {
				background: #cc0;
			}
			#tips.s4 .active {
				background: #090;
			}
		</style>
		<script type="text/javascript">
			window.onload = function() {
				var oTips = document.getElementById("tips");
				var oInput = document.getElementsByTagName("input")[0];
				var aSpan = oTips.getElementsByTagName("span");
				var aStr = ["弱", "中", "强", "非常好"];
				var i = 0;

				oInput.onkeyup = oInput.onfocus = oInput.onblur = function() {
					var index = checkStrong(this.value);
					this.className = index ? "correct" : "error";
					oTips.className = "s" + index;
					for ( i = 0; i < aSpan.length; i++)
						aSpan[i].className = aSpan[i].innerHTML = "";
						if(index==4){
							index && (aSpan[index - 1].className = "active", aSpan[index - 1].innerHTML = aStr[index - 1]);
							index && (aSpan[index - 2].className = "active", aSpan[index - 2].innerHTML = aStr[index - 2]);
							index && (aSpan[index - 3].className = "active", aSpan[index - 3].innerHTML = aStr[index - 3]);
							index && (aSpan[index - 4].className = "active", aSpan[index - 4].innerHTML = aStr[index - 4]);
						}else if(index==3){
							index && (aSpan[index - 1].className = "active", aSpan[index - 1].innerHTML = aStr[index - 1]);
							index && (aSpan[index - 2].className = "active", aSpan[index - 2].innerHTML = aStr[index - 2]);
							index && (aSpan[index - 3].className = "active", aSpan[index - 3].innerHTML = aStr[index - 3]);
						}else if(index==2){
							index && (aSpan[index - 1].className = "active", aSpan[index - 1].innerHTML = aStr[index - 1]);
							index && (aSpan[index - 2].className = "active", aSpan[index - 2].innerHTML = aStr[index - 2]);
						}else if(index==1){
							index && (aSpan[index - 1].className = "active", aSpan[index - 1].innerHTML = aStr[index - 1]);
						}
						
				};
			};
			/** 强度规则
			 + ------------------------------------------------------- +
			 1) 任何少于6个字符的组合,弱;任何字符数的同类字符组合,弱;
			 2) 任何字符数的两类字符组合,中;
			 3) 12位字符数以下的三类或四类字符组合,强;
			 4) 12位字符数以上的三类或四类字符组合,非常好。
			 + ------------------------------------------------------- +
			 **/
			//检测密码强度
			function checkStrong(sValue) {
				var modes = 0;
				if (sValue.length < 6)
					return modes;
				if (/\d/.test(sValue))
					modes++;
				//数字
				if (/[a-z]/.test(sValue))
					modes++;
				//小写
				if (/[A-Z]/.test(sValue))
					modes++;
				//大写
				if (/\W/.test(sValue))
					modes++;
				//特殊字符
				switch (modes) {
					case 1:
						return 1;
						break;
					case 2:
						return 2;
					case 3:
					case 4:
						return sValue.length < 12 ? 3 : 4;
						break;
				}
			}
		</script>
	</head>
	<body>
		<input type="password" value="" maxlength="16" />
		<div id="tips">
			<span></span><span></span><span></span><span></span>
		</div>
	</body>
</html>

 

目录
相关文章
|
6月前
|
JavaScript 算法 数据安全/隐私保护
原生JS实现:密码输入框显示隐藏密码效果
原生JS实现:密码输入框显示隐藏密码效果
171 4
|
1月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
1月前
|
前端开发 JavaScript 安全
前端JS实现密码校验键盘横竖、26字母、相同字母、相同数字、密码包含用户名、数字 字母不能连续 不能相同三个、不能横向 竖向 连续三个 包含字符、不能有中文符号
该 JavaScript 代码实现了一个严格的密码校验功能,确保密码满足多种安全要求,包括长度、字符类型、不包含中文及特殊字符、不与用户名相似等。通过多个辅助函数,如 `validateFormat` 检查密码格式,`isHasChinaCharFun` 检测中文符号,`getCharAll` 生成键盘组合,以及 `checkPasswordFun` 综合验证密码的有效性和安全性。此工具对于提高用户账户的安全性非常有用。
34 0
|
3月前
|
前端开发 JavaScript 数据安全/隐私保护
前端JS正则校验密码之3种实现方式
这篇文章展示了三种使用JavaScript正则表达式来校验密码的方法,密码需要满足包含大写字母、小写字母、数字及特殊字符,并在8到16位之间,同时提供了示例代码和实现效果。
121 1
前端JS正则校验密码之3种实现方式
|
3月前
|
JavaScript 前端开发 API
vue中将验证表单输入框的方法写在一个js文件中(表达式验证邮箱、身份证、号码、两次输入的密码是否一致)
这篇文章介绍了如何在Vue框架中将表单输入验证逻辑封装到一个JavaScript文件中,并通过正则表达式验证邮箱、身份证、手机号等信息,同时确保两次密码输入的一致性。
|
6月前
|
移动开发 JavaScript 安全
js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结
js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结
287 0
|
5月前
|
算法 JavaScript 安全
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
53 0
|
5月前
|
算法 JavaScript 安全
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
103 0
|
5月前
|
JavaScript 前端开发 数据安全/隐私保护
JS中使用Cookie实现记住密码以及设置密码过期时间
JS中使用Cookie实现记住密码以及设置密码过期时间
105 0
|
6月前
|
前端开发 JavaScript API
JavaScript实现忘记密码功能
JavaScript实现忘记密码功能