• JS验证密码安全级别


    先来说一下这个问题:如何验证密码的安全级别。例如:小于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));   
    }
  • 相关阅读:
    基于spark实现表的join操作
    关于IO的一些数字
    scala的REPL shell的调用
    搭建eclipse+maven+scala-ide的scala web开发环境
    Apache Mesos总体架构
    spark下测试akka的分布式通讯功能
    akka创建actor时报错:IllegalArgumentException: no matching constructor found on class $iwC$$iwC$$iwC$$iwC$
    akka构建简单分布式应用
    Memcached 工作原理
    分析Redis架构设计
  • 原文地址:https://www.cnblogs.com/mingmingruyuedlut/p/2650158.html
Copyright © 2020-2023  润新知