nodejs 密码校验

let baseStr = ['1234567890','qwertyuiop','asdfghjkl','zxcvbnm','!@#$%^&*()','QWERTYUIOP','ASDFGHJKL','ZXCVBNM'];

function testContinuousPassword(str){
    var flag = false;
    var strArray = str.split(''); 
    var strlength = str.length
    for(let i in baseStr){
        for(var j=0;j<=strlength-3;j++){
            var temp = strArray[j] + strArray[j+1] + strArray[j+2];
            if(baseStr[i].indexOf(temp)>=0 || baseStr[i].indexOf(temp.split("").reverse().join(""))>=0){
                flag = true;
                break;
            }
        }
        if(flag) break;
    }
    if(flag){
        console.log('密码存在连续')
    }else{
        console.log('密码可以通过')
    }
    return flag;
}

function testSamePassword(str){
    var flag = false;
    var strArray = str.split(''); 
    var strlength = str.length;
    for(var j=0;j<=strlength-3;j++){
        if((strArray[j] == strArray[j+1]) && (strArray[j] == strArray[j+2])){
            flag = true;
            break;
        }
    }
    if(flag){
        console.log('密码存在6位相同')
    }else{
        console.log('密码可以通过')
    }
    return flag;
}

function checkStrong(sPW) {
    if (sPW.length < 8)
      return 0; //密码太短  
    Modes = 0;
    for (i = 0; i < sPW.length; i++) {
      //测试每一个字符的类别并统计一共有多少种模式.  
      Modes |= CharMode(sPW.charCodeAt(i));
    }
    return bitTotal(Modes);
  }


  function CharMode(iN) {
    if (iN >= 48 && iN <= 57) //数字  
      return 1;
    if (iN >= 65 && iN <= 90) //大写字母  
      return 2;
    if (iN >= 97 && iN <= 122) //小写  
      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;
  }
Node.js中,通常使用token来对用户进行身份验证和授权。引用是一个示例代码,它演示了如何创建一个用于生成和验证token的类。该类名为Jwt,它引入了一些必要的模块,如fs、path和jsonwebtoken。该类具有两个方法:generateToken用于生成token,verifyToken用于验证token。生成token时,需要传入数据和有效期,同时使用私钥对数据进行签名;验证token时,需要传入token并使用公钥进行验证。如果验证通过,则返回token中的数据,否则返回错误信息。 在示例代码中,展示了如何在用户登录成功后生成对应的token并返回给客户端。这段代码引入了JwtUtil工具类和AesUtil工具类。在登录接口中,首先查询用户名对应的用户信息,然后使用AesUtil进行密码解密,将解密后的密码与用户输入的密码进行比较。如果匹配成功,则生成对应的token,并将其返回给客户端。 为了保护需要验证身份信息的请求接口,示例代码中引入了中间件函数。该函数对所有需要验证身份的请求进行拦截,并校验token的合法性。如果token校验通过,则继续执行下一个中间件或路由处理程序;否则,返回登录信息不正确的错误提示。 综上所述,可以使用示例代码中的Jwt类来生成和验证token,然后在登录接口中生成对应的token并返回给客户端,同时使用中间件函数来拦截需要验证身份信息的请求并校验token的合法性。这样可以实现Node.js中的token验证机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值