`
天梯梦
  • 浏览: 13635156 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

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

 
阅读更多

前言

密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是字母、数字、字符3选2,区分大小写。对于设置得太简单的密码,予以错误提示。或者予以密码等级(低中高)显示,让用户设置高级密码。那如何利用JS实现呢?

 

代码

链接:https://gist.github.com/xuanfeng/a44f20cb4569d5b4cd5e

function passwordLevel(password) {
    var Modes = 0;
    for (i = 0; i < password.length; i++) {
        Modes |= CharMode(password.charCodeAt(i));
    }
    return bitTotal(Modes);

    //CharMode函数
    function CharMode(iN) {
        if (iN >= 48 && iN <= 57)//数字
            return 1;
        if (iN >= 65 && iN <= 90) //大写字母
            return 2;
        if ((iN >= 97 && iN <= 122) || (iN >= 65 && iN <= 90)) //大小写
            return 4;
        else
            return 8; //特殊字符
    }

    //bitTotal函数
    function bitTotal(num) {
        modes = 0;
        for (i = 0; i < 4; i++) {
            if (num & 1) modes++;
            num >>>= 1;
        }
        return modes;
    }
}

 

使用

普通使用

使用语法:passwordLevel(string)

验证规则:数字、大写字母、小写字母、特殊字符

函数结果:返回密码中包含的规则数

运行例子

passwordLevel("123456")    	   //返回1
passwordLevel("Abc'123456")    //返回4

 

结合jquery.validate.js使用

// 添加验证方法:至少包含两种规则
$.validator.addMethod("strongPsw", function(value, element) {
    if(passwordLevel(value) == 1){return false;}
    return true
}, "格式不符合");

// 开始验证
$(".form").validate({
    rules: {
        pwd: {
            required: true,		//必填
            minlength: 6,		//最小长度
            maxlength: 32,		//最大长度
            strongPsw: true,	//密码强度
        },
        repwd: {
            required: true,
            minlength: 6,
            maxlength: 32,
            equalTo: "#pwd"		//再次填写密码需一致
        }
    }

});

 

 

原文:http://www.xuanfengge.com/password-contains-letters-case-numbers-at-least-two-of-the-characters.html

转自:密码等级:至少包含字母、大小写数字、字符中的两种 JS实现方案

 

 

 

分享到:
评论

相关推荐

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

    本文实例讲述了JS实现至少包含字母、大小写数字、字符的密码等级的两种方法。分享给大家供大家参考。具体如下: 前言 密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是...

    密码规则之数字、小写、大写、特殊字符,至少满足3个。

    JS实现密码校验规则: 数字、字母、小写、大写、特殊字符,以上条件至少满足3个。

    JavaScript动态检测密码强度原理及实现方法详解

    本文实例讲述了JavaScript动态检测密码...一般我们的密码会设置为数字、字母(大小写)、特殊符号三类。 强:密码串包含其中三种或以上 中:密码串包含其中两种 弱:密码串包含其中一种 字符类型 二进制表示 AS

    正则表达式

    i (忽略大小写) m (多行查找) vaScript动态正则表达式问题 请问正则表达式可以动态生成吗? 例如JavaScript中: var str = "strTemp"; 要生成: var re = /strTemp/; 如果是字符连接: var re = "/" + str + ...

    Java-PHP-C#

    简单化一点, 我们可以用 eregi()取代 ereg().eregi()对大小写不敏感, 我们就不需要指定两个范围 "a-z" 和 "A-Z" – 只需要指定一个就可以了: ^[_a-z0-9-]+(\.[_a-z0-9-]+)*$ 后面的服务器名字也是一样,但要去掉...

    javascript入门笔记

    严格区分大小写 :name 和 Name 所有的语句都是以 ; 来表示结束 所有的标点符号都是英文的 ; 和 ; . 和 。 : 和 : " 和 “ ' 和 ‘ () 和 () [] 和 【】 {} 和 {} 2、注释 单行注释: // 多行注释:...

    正则表达式30分钟入门教程

    通常,处理正则表达式的工具会提供一个忽略大小写的选项,如果选中了这个选项,它可以匹配hi,HI,Hi,hI这四种情况中的任意一种。 不幸的是,很多单词里包含hi这两个连续的字符,比如him,history,high等等。用hi来查找...

    meteor-case-converter:将事物名称转换为各种大小写格式

    安装$ meteor add ffxsam:case-converter用法语法: CaseConv.convert(string, format) 返回值: String 不必记住诸如camelcase或hyphen类的特殊格式字符串,您只需传递两个字符即可表明所需的格式,例如: newName ...

    freemarker总结

    其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替&gt;会有更好的效果,因为 FreeMarker会把&gt;解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:(x&gt;y)&gt; ...

    erro-solucao-encontre-a-maior-substring:JAVASCRIPT ES6 + INDEXOF()+ SUBSTR()

    两个输入字符串均包含1至50个字符(“ A”-“ Z”,“ a”-“ z”或空格),包括或至少一个字母(“ A”-“ Z”,“ a” -'z')。 出口: 两个String之间共有的最大子序列的大小。 参赛范例 输出范例 abcdef 二 ...

    客户端统一验证JavaScript函数库及示例源码

    有两种方法将JS程序用于文档的元素:通过元素的名称和通过树状结构。这两个方法并非独立的,可能同时存在于相同的脚步中。 基本上对象是可以用脚步控制,或者可编程元素,拥有属性(Property)、事件(Event)以及方法...

    2010年 c语言入门到精通

     (3)根据需要混合使用大小写字母和数字。一个合理协议是,变量中每个单词的第一个字母大写,例如:DateOfBirth。  (4)另一个合理协议是,每个变量名以两个或三个字符缩写开始,这些字符缩写对应于变量要存储...

    仿世纪佳缘婚介交友系统5.3 ASP+SQL

    模块功能包括:更新用户数据、修复用户数据、更新系统统计、更新缓存数据、更新群组数据、更新到期状态等。可根据名功能之下文字说明理解各自功能用途。这里主要介绍一下更新系统统计及更新缓存数据: (1)、...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    下面就以两种不同的用户来分析博客网站的需求。 4.2.1注册博友 首先必须在博客首页中登录填写用户名和密码,这样才能执行一些相关操作,不然就是普通用户只能查看一些信息,而不能发表博文。可以在管理页面上添加...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    3.所有XML标记都区分大小写; 4.所有标记的属性必须用""括起来; 所以上列语句在XML中正确的写法是 1. sample 2.&lt; b&gt;&lt; i&gt;sample&lt; /i&gt;&lt; /b&gt; 3.&lt; td&gt;sample 4.&lt; font color="red"&gt;samplar  另外,XML标记必须...

    整理后java开发全套达内学习笔记(含练习)

    System.out.printf() 可插入带 % 的输入类型,前两种只可以插入转义符, 不能插入 % 的数据或字符串 在 printf 里面,输出有5个部分 %[argument_index$][flags][width][.precision]conversion 以“%”开头,[第几个...

    帝国下载系统 v2.5 开源正式版 bulid 090613

    (4)、模板调用新增“灵动标签”支持直接在模板中输写标签模板,且标签模板支持各种程序代码,更灵活。 80、模板统一的SEO变量,方便制作模板及SEO。 81、全新的默认模板,更清爽。 82、提示信息采用页面形式,更有...

    帝国下载系统 v2.5 开源正式版 bulid 090416.rar

    (4)、模板调用新增“灵动标签”支持直接在模板中输写标签模板,且标签模板支持各种程序代码,更灵活。 80、模板统一的SEO变量,方便制作模板及SEO。 81、全新的默认模板,更清爽。 82、提示信息采用页面形式,更...

Global site tag (gtag.js) - Google Analytics