国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript 密碼強度驗證規則、打分、驗證(給出前端代碼,后端代碼可根據強度規則翻譯)

2019-11-21 00:29:44
字體:
來源:轉載
供稿:網友
前言:

密碼強度是一個很普遍的功能,比較簡單,主要是怎么制定這個強度規則。現在需要升級密碼強度的驗證,以前的驗證比較簡單,現在已經不能滿足需求了,現在需要可靈活變化并有多級別可配置選擇的一個密碼強度驗證,所以就設計了下面這個東東。在設計前也參考了下比較成熟的強度規則,大同小異,不外乎都采取了打分的機制來控制密碼強度規則,這樣可配置性高,靈活。本來想直接拿來用的,但是發現都比較舊,有些不太適宜公司開發的需求,可能這個東西比較簡單吧,所以也沒什么人去更新和寫新的代碼,所以還是自己動手設計了規則和寫了代碼。

實現:

  原理:
  采用打分的機制,打分分為3類(基礎分、加分、減分),先求出基礎分,在計算加分的部分,最后減去要扣除的分數就為最終總分。
  
  規則:
  密碼可輸入類型(字符,字母大寫,字母小寫,特殊字符)。
  基礎分為,密碼長度,一個長度為一分,大于18個字符都為18分;密碼里面包含一種可輸入類型,基礎分加4分。
  加分為,一種密碼可輸入類型的總數量大于等于2個,加分2分,如果總數量大于等于5,加分4分。
  減分為,如果有連續重復的單個種類字符,則重復一次減1分。
  總分50分。
  0~10分:不合格(弱)
  11~20分:一般
  21~30分:中
  31~40分:強
  41~50分:安全
  *分數范圍可以自由調整和搭配,其實整個打分規則都可以根據需要修改

  code:
復制代碼 代碼如下:

function passwordGrade(pwd) {
var score = 0;
var regexArr = ['[0-9]', '[a-z]', '[A-Z]', '[//W_]'];
var repeatCount = 0;
var prevChar = '';
//check length
var len = pwd.length;
score += len > 18 ? 18 : len;
//check type
for (var i = 0, num = regexArr.length; i < num; i++) { if (eval('/' + regexArr[i] + '/').test(pwd)) score += 4; }
//bonus point
for (var i = 0, num = regexArr.length; i < num; i++) {
if (pwd.match(eval('/' + regexArr[i] + '/g')) && pwd.match(eval('/' + regexArr[i] + '/g')).length >= 2) score += 2;
if (pwd.match(eval('/' + regexArr[i] + '/g')) && pwd.match(eval('/' + regexArr[i] + '/g')).length >= 5) score += 2;
}
//deduction
for (var i = 0, num = pwd.length; i < num; i++) {
if (pwd.charAt(i) == prevChar) repeatCount++;
else prevChar = pwd.charAt(i);
}
score -= repeatCount * 1;
return score;
}

打分例子:
1111=7分
1@dA=20分
111111=9分
abcdef1=19分
abcd12=18分
abc123=18分
ab123A=22分
aA12j@=26分
aasdfkjjsjjj=16分
111111111dsfskjjkjeh=25分
1111dsfskjjkjeh=25分
1231kb#4ktSF!T@s^j#hkWH=50分
skhk3293ks=24分
sfh#4hHdk=29分
bure12#sk=27分
a@s@dk23=26分
bruceLi@09kt=34分
ce@Li1=24分
END
到這里就結束了,歡迎大家一起來討論這個打分的規則,大家也可以直接給出自己寫好的規則和代碼,這樣方便大家研究和交流,代碼是需要不斷維護和更新的,這樣我們才能站在前人的腳本上面繼續前進。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 璧山县| 涞水县| 福海县| 正蓝旗| 达孜县| 芒康县| 新民市| 攀枝花市| 郑州市| 诸暨市| 炎陵县| 顺平县| 治多县| 临江市| 巴东县| 巩义市| 长子县| 林周县| 泰和县| 班玛县| 景德镇市| 郁南县| 内江市| 顺昌县| 玛多县| 桓仁| 林西县| 益阳市| 板桥市| 阿尔山市| 宜黄县| 武冈市| 柘荣县| 开原市| 云和县| 台北县| 静海县| 含山县| 巩留县| 隆化县| 亚东县|