博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS验证密码安全级别
阅读量:4624 次
发布时间:2019-06-09

本文共 2214 字,大约阅读时间需要 7 分钟。

先来说一下这个问题:如何验证密码的安全级别。例如:小于6个字符的密码不许保存,当字符数大于等于6的时候,如果含有数字、小写字母、大写字母、特殊字符中的一种时为低安全级别,含有两种或三种的时候为中安全级别,含有四种的时候为高安全界别。

接下来我用两种方法去实现这个问题:

第一种方法:遍历password字符串中所有的字符,根据字符的ASCII 码判断字符串中都有哪几种字符,并且用一个数组的不同位表示是否含有某种字符。

function AnalyzePasswordSecurityLevel(password) {    var pwdArray = new Array();    var securityLevelFlag = 0;    if (password.length < 6) {        return 0;    }    else {        var securityLevelFlagArray = new Array(0, 0, 0, 0);        for (var i = 0; i < password.length; i++) {            var asciiNumber = password.substr(i, 1).charCodeAt();            if (asciiNumber >= 48 && asciiNumber <= 57) {                securityLevelFlagArray[0] = 1;  //digital            }            else if (asciiNumber >= 97 && asciiNumber <= 122) {                securityLevelFlagArray[1] = 1;  //lowercase            }            else if (asciiNumber >= 65 && asciiNumber <= 90) {                securityLevelFlagArray[2] = 1;  //uppercase            }            else {                securityLevelFlagArray[3] = 1;  //specialcase            }        }        for (var i = 0; i < securityLevelFlagArray.length; i++) {            if (securityLevelFlagArray[i] == 1) {                securityLevelFlag++;            }        }        return securityLevelFlag;    }}

这里的securityLevelFlag等于几就代表字符串中含有几种字符。

 

第二种方法:用正则表达式去判断密码中都包含了哪几种字符

function AnalyzePasswordSecurityLevel(password) {    var securityLevelFlag = 0;    if (password.length < 6) {        return 0;    }    else {        if (/[a-z]/.test(password)){            securityLevelFlag++;    //lowercase        }        if (/[A-Z]/.test(password)){            securityLevelFlag++;    //uppercase        }         if(/[0-9]/.test(password)){            securityLevelFlag++;    //digital        }        if(containSpecialChar(password)){            securityLevelFlag++;    //specialcase        }        return securityLevelFlag;    }}function containSpecialChar(str)   {       var containSpecial = RegExp(/[(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\?)(\)]+/);    return (containSpecial.test(str));   }

 

转载于:https://www.cnblogs.com/mingmingruyuedlut/archive/2012/09/05/2650158.html

你可能感兴趣的文章
python中的变量,字符串,用户交互,if语句
查看>>
django的模板文件需要为utf-8无bom格式
查看>>
Fedora Linux 18 延期至年底
查看>>
Spring Framework 3.2 RC1 发布
查看>>
基于ios开发点餐系统应用(附带源码)
查看>>
Xenia and Weights(深度优先搜索)
查看>>
文件包含漏洞进阶篇
查看>>
JavaScript的self和this使用小结
查看>>
CSS3.0:透明度 Opacity
查看>>
Arduino Wire.h(IIC/ I2C)语法
查看>>
web高并发的解决方案
查看>>
OC中的NSNumber、NSArray、NSString的常用方法
查看>>
android 用ImageSwitcher+Gallery实现图片浏览效果 分类: ...
查看>>
STM32里面的一些小函数——assert_param,PUTCHAR_PROTOTYPE
查看>>
Java分布式锁的三种实现方案(redis)
查看>>
运行客户端程序报读取配置文件出错的解决方案
查看>>
day 5 - 2 字典(dict)练习
查看>>
微引擎的自定义菜单40063错误解决
查看>>
JAVA wait(), notify(),sleep具体解释
查看>>
数据挖掘十大经典算法
查看>>