【前端日記】一種基於簡易評分規則計算密碼強度的方法

export const calcScore = (password) => {
  let num = 0, lower = 0, upper =0, other =0;
  for(let i = 0; i < password.length; i++){
    let c = password.charCodeAt(i);
    if( c >= 48 && c <= 57){
      num++;
    }else if(c >= 97 && c <= 122){
      lower ++;
    }else if(c >= 65 && c <=90){
      upper++;
    }else{
      other++;
    }
  }

  let score = 0;
  if(password.length >= 8){
    score += 25;
  }else if(password.length > 4){
    score += 10;
  }else if(password.length > 0){
    score += 5;
  }
  if(lower > 0 && upper > 0){
    score += 20;
  }else if(lower > 0 || upper > 0){
    score += 10;
  }

  if(num > 1){
    score += 20;
  }else if(num > 0){
    score += 10;
  }

  if(other > 1){
    score += 25;
  }else if(other > 0){
    score += 10;
  }

  if(num > 0 && lower > 0 && upper > 0 && other > 0){
    score += 5;
  }else if(num > 0 && other > 0 && (lower > 0 || upper > 0 )){
    score += 3;
  }else if(num > 0 && (lower > 0 || upper > 0)){
    score += 2;
  }
  return score;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章