`
lixuanbin
  • 浏览: 137494 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

javascript 检验密码强度 -- 字符 数字 符号

阅读更多

   用javascript校验密码强度级别,可以检测字母、数字和英文键盘符号,strength值越大则密码越安全。正则表达式版本:

 

/*
 * @return {number} pwdStrength
 * -101: too short
 * -102: too long
 * 1: weak
 * 2: medium
 * 3: strong
 */
var testPwdStrength1 = function(pwdText){
    var pwdStrength = 0;
    if (typeof pwdText === "string") {
        if (pwdText.length < 8) {
            // 密码过短
            pwdStrength = -101;
        } else if (pwdText.length > 20) {
                // 密码过长
                pwdStrength = -102;
        } else {
                var containsDigitPattern = /^.*?[\d]+.*$/g;
                var containsLetterPattern = /^.*?[a-zA-Z]+.*$/g;
                var containsCharPattern = /^.*?[`~@#\$%\^&\*\(\)\-_=\+\\\|;:'",<\.>\/\?].*$/g;
                if (containsCharPattern.test(pwdText)) {
                    pwdStrength++;
                }
                if (containsLetterPattern.test(pwdText)) {
                    pwdStrength++;
                }
                if (containsDigitPattern.test(pwdText)) {
                    pwdStrength++;
                }
        }
    } else {
        // 密码无效
        pwdStrength = -404;
    }
    return pwdStrength;
};
 

不使用正则表达式,基于每个密码字符的ascii值的比较的版本:

 

var testPwdStrength2 = function(pwdText) {
	var pwdStrength = 0;
	if(pwdText.length < 8) {
		pwdStrength = -101; // Too short
	} else if(pwdText.length > 32) {
		pwdStrength = -102; // Too long
	} else {
		var tempCharCode = 0, lowerCaseLetterCounter = 0, upperCaseLetterCounter = 0, digitCounter = 0, signalCounter = 0;
		for(var i = 0; i < pwdText.length; i++) {
			tempCharCode = pwdText.charCodeAt(i);
			if(tempCharCode > 32 && tempCharCode < 127) { // Visible char
				if(tempCharCode >= 48 && tempCharCode <= 57) {// 0-9
					++digitCounter;
				} else if(tempCharCode >= 65 && tempCharCode <= 90) {// A-Z
					++upperCaseLetterCounter;
				} else if(tempCharCode >= 97 && tempCharCode <= 122) {// a-z
					++lowerCaseLetterCounter;
				} else {
					++signalCounter;
				}
			} else { // Invalid char
				pwdStrength = -404;
				break;
			}
		}
		if(upperCaseLetterCounter > 0 || lowerCaseLetterCounter > 0) {
			++pwdStrength;
		}
		if(digitCounter > 0) {
			++pwdStrength;
		}
		if(signalCounter > 0) {
			++pwdStrength;
		}
	}
	return pwdStrength;
};
 

 

   以上代码在chrome/firefox/ie9下测试通过。函数返回值表示密码的组成情况(字母/数字/符号),如果需要确定密码的具体组合情况可以酌情修改上述代码实现。

 

0
0
分享到:
评论

相关推荐

    Javascript密码强度.txt

    ### 二、JavaScript密码强度检测代码解读 #### 1. `CharMode` 函数 该函数用于判断每个字符的类型,返回一个代表该字符类型的数值。具体来说: - 如果字符是数字 (ASCII值介于48-57),则返回1; - 如果字符是大写...

    判断密码必须包括大小写字母,特殊字符,数字,长度8到16位

    ### 密码强度验证知识点详解 #### 一、引言 在互联网日益发达的今天,密码作为用户身份验证的重要组成部分,其安全性变得尤为重要。为了确保密码的安全性,很多系统都会对用户设置的密码进行强度验证,以确保其...

    JavaScript 密码强度判断代码

    ### JavaScript密码强度判断代码解析 在现代Web应用中,用户数据的安全性至关重要,而密码作为保护用户账户的第一道防线,其强度直接关系到账户的安全。本文将深入解析一段JavaScript代码,该代码用于评估用户输入...

    自动检测密码强度

    这种工具通常会根据密码的长度、字符复杂性(包括大小写字母、数字、特殊符号的组合)、常见字典攻击的抵抗力等因素来评估密码的安全等级。 标签“源码”表明博文中可能包含了用于实现这一功能的源代码,这可能是用...

    密码强度js验证码,对注册用户名,密码注册时进行验证。

    通过分析密码的各种特征(如长度、包含的字符类型等),给出一个综合评分,并通过不同的符号来表示密码强度。 **2. 实现逻辑:** - **密码长度判断:** 根据密码的长度为密码评分。长度不同,得分也不同。 - **...

    JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例

    1. 特殊字符和表情的定义:在编程和数据处理中,特殊字符通常指的是那些非字母、非数字、非常见符号的字符,它们可能影响程序的正常运行。表情则通常是指表情符号,这些符号广泛用于社交媒体、即时通讯等领域,但...

    passwordStrength 基于jquery的密码强度检测.zip

    - 通常,密码强度检测会考虑以下因素:长度、数字、字母、符号的混合、连续字符和重复字符的出现等。 - 插件会根据计算出的分数动态更新密码强度指示器(如进度条或文字提示),让用户了解当前密码的安全级别。 2...

    基于JQuery的密码强度验证代码

    为了提高密码强度,通常建议用户设置的密码至少包含8个字符,并且包含大写字母、小写字母、数字以及特殊符号,且不应与用户名相同。通过这种多维度的检查,密码强度验证插件能够在用户输入密码时提供实时反馈,促使...

    javascript实现密码强度显示

    在本篇介绍中,将阐述如何使用JavaScript实现密码强度的实时显示功能。密码强度显示是一个对用户非常有用的功能,它可以指导用户创建一个符合特定安全标准的密码。通常,一个强密码能够帮助更好地保护用户帐户的安全...

    Js密码强度验证

    我们可以定义一系列规则来检查密码是否包含特定类型的字符,如数字、字母、符号等。例如,一个简单的正则表达式`/^(?=.*\d)(?=.*[a-zA-Z]).{6,}$/`将要求密码至少包含一个数字和一个字母,长度至少为6。 2. **事件...

    JS实现至少包含字母、大小写数字、字符的密码等级的两种方法

    在JavaScript中实现一个密码强度检测的功能是现代前端开发中常见的需求。通常网站会要求用户设置的密码符合一定的复杂度,比如至少包含大小写字母、数字和特殊字符中的一种或多种。本文将介绍两种用JavaScript实现...

    JavaScript 验证非法字符输入

    在JavaScript中,`test()`方法可以用来检测字符串是否符合某个正则表达式: ```javascript var input = document.getElementById('inputField').value; if (!pattern.test(input)) { alert('输入包含非法字符,请...

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

    密码强度通常依据密码中包含的字符类型(数字、字母、特殊符号)的数量来决定。根据题目描述,我们将密码强度分为三个等级: 1. **弱密码**:仅包含一种类型的字符(数字、字母或特殊符号)。 2. **中等密码**:...

    JavaScript注册时密码强度校验代码

    本文将详细介绍如何使用JavaScript实现密码强度校验功能,并通过不同的视觉效果反馈给用户当前输入密码的安全等级。 #### 密码强度分类 本示例中的密码强度分为四个等级: 1. **无密码状态**:当用户未输入任何字符...

    js实现密码强度检测【附示例】

    js实现密码强度检测是指通过JavaScript编程语言编写的一段代码,用于在用户输入密码时,根据密码的组成、长度等因素判断密码的安全性级别,一般是分为“弱”、“中”、“强”三个等级。在用户注册或更改密码时,这种...

    Javascript - The Definitive Guide 6th.pdf

    JavaScript 中有多种文字量,包括数字、字符串和布尔值。这些基本的数据类型是构建更复杂数据结构的基础。 - **数字**:JavaScript 只有一种数字类型,即 `Number` 类型,它可以表示整数或浮点数。需要注意的是,...

    hasemoji检查一个字符串是否有任何表情符号emoji

    在IT行业中,尤其是在Web开发领域,JavaScript是一种广泛使用的编程语言,用于实现客户端的交互...它简化了检测字符串中emoji的过程,使得开发者可以更专注于他们的核心业务逻辑,而不必担心Unicode字符集的复杂性。

    基于字符熵的JavaScript代码混淆自动检测方法.pdf

    本文提出的“基于字符熵的JavaScript代码混淆自动检测方法”是一种新颖的检测策略,它结合了字符熵和N-gram模型的特性,能够在不依赖大量标注数据的情况下,有效地检测混淆的JavaScript代码。字符熵是一种衡量信息不...

    JavaScript变量

    - **后续字符**:除了首字符之外,其他字符可以是下划线`_`、美元符号`$`、任何字母或数字。 **示例**: ```javascript var test; // 合法 var $test; // 合法 var _test2; // 合法 ``` ##### 2. 命名方法 - **...

Global site tag (gtag.js) - Google Analytics