javascript 密码强度校验

/**
 * 密码强度校验 返回密码强度等级  分为多个等级 1 2 3 4   数字越大强度越高
 * @param fieldValue  需要校验的内容
 * @returns {number|number}
 */
export function checkPassword(fieldValue){
  /*
   返回密码的强度级别
   */
  function checkStrong(sPW) {
    if (sPW.length < 8||sPW.length > 40) {
      return 0; //密码太短或太长
    }

    let Modes = 0;
    for (let 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; //特殊字符
  }
  /*
   统计字符类型
   */
  function bitTotal(num) {

    let modes = 0;
    for (let i = 0; i < 4; i++) {
      if (num & 1) modes++;
      num >>>= 1;
    }
    return modes;
  }
  /**
   * 密码强度等级说明,字符包括:小写字母、大写字母、数字、特殊字符
   * 1---密码包含其中之一
   * 2---密码包含其中之二
   * 3---密码包含其中之三
   * 4---密码包含其中之四
   */
  return checkStrong(fieldValue);
}
版权声明:小马大哥哥 发表于 2022-02-04 23:22:51。
转载请注明:javascript 密码强度校验 | 马哥导航

暂无评论

暂无评论...