修改密码校验

本文详细介绍了一种密码变更及强度验证的实现方法,包括原密码校验、新密码复杂度检查、确认新密码一致性等步骤,确保了密码的安全性和合规性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 function testPassword (opass,npass,cpass,callback){
            /*
            opass:原密码
            npass:新密码
            cpass:确认新密码
            callback:校验成功后的回调
            校验规则:
            1.非空校验
            2.原密码准确性校验
            3.重复新校验:新密码不能与原密码相同
            4.准确新校验:新密码与确认新密码一致
            5:密码不少于8位,支持数字、字母、特殊字符;至少有两个字母,字母区分大小写,至少有2个非字            
              母,不能有空格,大括号
             */
            if(opass == ""){
                mui.alert('原密码为空,请输入','',null);//mui弹框
                return;
            }else{
                var correctpass = JSON.parse(localStroge.getItem("ui")).password
                if(correctpass != opass){
                    mui.alert("原密码错误,请从新输入",'',null);
                }
                return;
            }
            if(npass == ''){
                mui.alert('新密码为空,请输入','',null);
                return;
            }else{
                var result = [];
                if(npass.length<8){
                    result.push('长度不能小于8位')
                }
                if(/\s+/.test(npass)){
                    result.push('不能有空格')
                }
                if(/{/.test(npass)||/}/.test(npass)){
                    result.push('不能有大括号');
                }
                var char = npass.match(/[A-Za-z]{1,}/g)?npass.match(/[A-Za-z]{1,}/g).join(""):[];
                if(char.length<2){
                    result.push('至少有两个字母')
                }
                if(npass.length-char.length<2){
                    result.push('至少有两个非字母');
                }
                if(result.length){
                    var promptmessage = "新密码"+result.join(',');
                    mui.alert(promptmessage,'',null)
                    return;
                }
            }
            if(cpass == ''){
                mui.alert('确认密码为空,请输入','',null)
                return;
            }
            if(opass == npass){
                mui.alert('新密码不能与原密码相同','',null)
                return;
            }
            if(cpass != npass){
                mui.alert('确认密码与新密码不一致','',null)
                return;
            }
            callback();
       }

 

### 修改若依系统中的密码校验规则和逻辑 在若依系统中,为了实现更严格的密码校验逻辑,可以借鉴其他框架下的实现方式并结合自身的业务需求进行调整。对于前端部分,在定义`rules`对象时,应当明确规定每个字段的验证规则[^1]。 针对密码强度检测方面,可以通过设置三个布尔变量——`isNum`、`isLowercase` 和 `isHaveCase` 来分别表示是否存在数字、小写字母和其他字符(如大写字母),以此评估密码复杂度,并据此更新`level`数组以反映当前设定的安全级别(例如:"low", "middle", 或者 "high")[^2]。 当处理具体表单项目时,参数`value`代表待检验项的实际内容;在此上下文中即指代由用户提交的新密码字符串。基于此输入值执行相应的检查操作,诸如测量其长度或是判断是否含有特殊符号等都是必要的措施[^3]。 #### 实现示例 下面给出一段用于增强版密码验证功能的JavaScript代码片段: ```javascript // 定义验证规则 const rules = { password: [ { required: true, message: '请输入新密码', trigger: ['blur'] }, { min: 8, max: 20, message: '长度应在8到20位之间', trigger: ['blur'] } ], }; function checkPasswordComplexity(rule, value, callback){ let isNum = false; let isLowercase = false; let isHaveCase = false; const level = []; if(/\d/.test(value)){ isNum = true; level.push('number'); } if(/[a-z]/.test(value)){ isLowercase = true; level.push('lowercase'); } if(/[\W_]/.test(value)){ // 非字母数字下划线视为特殊字符 isHaveCase = true; level.push('specialChar'); } if(level.length >= 2){ // 至少满足两种条件才认为是强密码 return callback(); }else{ return callback(new Error('密码至少需包含两类字符')); } } ``` 上述函数通过正则表达式测试给定字符串是否符合预设模式,并依据匹配情况决定最终返回的结果。如果未能达到最低安全标准,则抛出错误提示告知用户进一步改进所选密码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值