zoukankan      html  css  js  c++  java
  • C# web程序js 与 后台密码强弱验证

    1、js端验证

    function checkPass(s) {
        if (s.length < 8) {
            return 0;
        }
        var ls = 0;
        if (s.match(/([a-z])+/)) {
            ls++;
        }
        if (s.match(/([0-9])+/)) {
            ls++;
        }
        if (s.match(/([A-Z])+/)) {
            ls++;
        }
        if (s.match(/[^a-zA-Z0-9]+/)) {
            ls++;
        }
        return ls
    }

    2、后台验证

    public class CheckPass
        {
            /// <summary>
            /// 密码强度
            /// </summary>
            public enum Strength
            {
                Invalid = 0, //无效密码
                Weak = 1, //低强度密码
                Normal = 2, //中强度密码
                Strong = 3 //高强度密码
            };
            /// <summary>
            /// 计算密码强度
            /// </summary>
            /// <param name="password">密码字符串</param>
            /// <returns></returns>
            public static Strength PasswordStrength(string password)
            {
                //空字符串强度值为0
                if (password == "") return Strength.Invalid;
                //字符统计
                int iNum = 0, iLtt = 0, iSym = 0;
                foreach (char c in password)
                {
                    if (c >= '0' && c <= '9') iNum++;
                    else if (c >= 'a' && c <= 'z') iLtt++;
                    else if (c >= 'A' && c <= 'Z') iLtt++;
                    else iSym++;
                }
                if (iLtt == 0 && iSym == 0) return Strength.Weak; //纯数字密码
                if (iNum == 0 && iLtt == 0) return Strength.Weak; //纯符号密码
                if (iNum == 0 && iSym == 0) return Strength.Weak; //纯字母密码
                if (password.Length < 8) return Strength.Weak; //长度小于8的密码
                if (iLtt == 0) return Strength.Normal; //数字和符号构成的密码
                if (iSym == 0) return Strength.Normal; //数字和字母构成的密码
                if (iNum == 0) return Strength.Normal; //字母和符号构成的密码
                return Strength.Strong; //由数字、字母、符号构成的密码
            }
    
        }

    3、使用方法

    if (checkPass(mcp_txtPasswordField.getValue()) < 3) {
        toastalert('密码必须是字母大写、字母小写、数字、特殊字符中任意三个组合,且长度大于8位!');
        return false;
    }
    if (CheckPass.PasswordStrength(this.txtPassword.Value)!=Strength.Strong)
    {
        this.Response.Redirect("/manager/ChangePwd.aspx");
        return;
    }

    4、第一次跳转时修改密码界面一般是单独界面,判断是否在iframe中方法

    1.方式一
    
    if (self.frameElement && self.frameElement.tagName == "IFRAME") {
      alert('在iframe中');
    }
    
    2.方式二
    if (window.frames.length != parent.frames.length) {
      alert('在iframe中');
    }
    
    3.方式三
    if (self != top) { 
      alert('在iframe中');
    }

    以上代码片段来自网友:

    https://www.cnblogs.com/zycbloger/p/6196493.html

    https://download.csdn.net/download/ice9696/5380033

    https://www.iteye.com/blog/zhanggz-188299

  • 相关阅读:
    JSON序列化时消除空格
    appium测试准备记录
    计算器的单元测试dome
    using关键字在C#中的3种用法
    VxWorks多任务功能
    VS2008与MATLAB R2007a混合编程配置过程
    MATLAB和C语言混合编程-----Matlab7.0 编译器设置
    C++虚函数与纯虚函数用法与区别(转载)
    printf("%f ", 3);输出结果为什么是0.000000(转载)
    浮点型数据在内存中存储的表示(转载)
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/13084411.html
Copyright © 2011-2022 走看看