最近因為在做WEB產(chǎn)品中接觸到密碼強度設(shè)置問題,找了不少解決方案,大多都是基于google提出的以密碼長度、英文大小寫以及符號組合來區(qū)分的方式進行。但是這樣組合出來的密碼形式還是有很大的問題。經(jīng)過搜集整理后,總結(jié)出以下幾種方式來處理關(guān)于密碼強度設(shè)定的規(guī)則供大家參考。
密碼強度,指一個密碼對抗猜測或是暴力破解的有效程度。一般來說,指一個未授權(quán)的訪問者得到正確密碼的平均嘗試次數(shù)。密碼的強度和其長度、復(fù)雜度及不可預(yù)測度有關(guān)。強密碼可以降低安全漏洞的整體風(fēng)險,但并不能降低采取其他安全措施的需要。
攻擊者可以提交猜測到的密碼的速率是衡量一個系統(tǒng)安全性的重要因素。有的系統(tǒng)在多次嘗試失敗后會暫停登入一段時間,在沒有其他安全缺陷時,這種系統(tǒng)可以用相對簡單的密碼保護。但是系統(tǒng)必須以某種形式存儲用戶密碼,而當(dāng)這些數(shù)據(jù)被盜時,就有極大的危險。(via.百度百科)
簡易版密碼強度規(guī)則
一、密碼長度至少8位;密碼含有數(shù)字&字母;
二、密碼含有符號;
三、含有字母大小寫。
規(guī)則:
--> 符合2項以上允許注冊。
--> 不符合針對項目進行針對性提示。
常規(guī)版密碼強度規(guī)則
一、密碼長度:5 分: 小于等于 4 個字符
--> 10 分: 5 到 7 字符-- 25 分: 大于等于 8 個字符
二、字母:
--> 0 分: 沒有字母
--> 10 分: 全都是?。ù螅懽帜?0 分: 大小寫混合字母
三、數(shù)字:
--> 0分: 沒有數(shù)字
--> 10分: 1 個數(shù)字
--> 20分: 大于等于 3個數(shù)字
四、符號:
--> 0分: 沒有符號
--> 10分: 1個符號
--> 25分: 大于1個符號
五、獎勵:
--> 2分: 字母和數(shù)字
--> 3分: 字母、數(shù)字和符號
--> 5分: 大小寫字母、數(shù)字和符號
規(guī)則:
--> >= 90: 非常安全
--> >= 80: 安全(Secure)
--> >= 70: 非常強
--> >= 60: 強(Strong)
--> >= 50: 一般(Average)
--> >= 25: 弱(Weak)
--> >= 0: 非常弱
專業(yè)版密碼強度規(guī)則
l 符合密碼基本規(guī)則者為70分。
--> +(總字元數(shù)-8) × 4
--> +(字母字元數(shù)-大寫字母字元數(shù)) × (字母字元數(shù)-小寫字母字元數(shù)) × 2
--> -(接連重復(fù)(Repeat)字元數(shù)) × 2
--> -(接連(Consecutive)數(shù)字字元數(shù)-3) × 1
--> -(接連(Consecutive)字母字元數(shù)-3) × 1
--> -(3碼以上的連續(xù)(sequential)數(shù)字) × 3
--> -(3碼以上的連續(xù)(sequential)字母) × 3
規(guī)則:
總分低於60者為弱(weak),高
于80者(含)為強(strong),介於兩者之間為中等(medium)。
骨灰版密碼強度規(guī)則
分?jǐn)?shù)區(qū)間:
60>x>0:未達標(biāo)準(zhǔn)
70>x≥60:警告
80>x≥70:已達標(biāo)準(zhǔn)
x≥80:優(yōu)秀(100為上限)
符號說明:
--> Flat:均一的 加/扣分 比例。
--> Incr:出現(xiàn)次數(shù)越多,加/扣分 比例越大。
--> Cond:根據(jù)增加的字元數(shù)調(diào)整 加/扣分 比例。
--> n:出現(xiàn)次數(shù)。
--> len:密碼字串長度。
積分說明:
· 增加字符的變化能提高分?jǐn)?shù)。
· 最后的分?jǐn)?shù)為加分項目和減分項目的總和。
· 分?jǐn)?shù)的范圍為0~100分。
· 分?jǐn)?shù)不需達到最低字元即可計算。
規(guī)則說明:
--> 密碼最低要求8字元
--> 最少符合下列4項中3項規(guī)則:- 大寫英文字元- 小寫英文字元- 數(shù)字字元- 符號字元
l 加分項目
--> 密碼字?jǐn)?shù)/Flat/+(n*4)
--> 大寫英文字母/Cond或Incr/+((len-n)*2)
--> 小寫英文字母/Cond或Incr/+((len-n)*2)
--> 數(shù)字字元/Cond/+(n*4)
--> 符號字元/Flat/+(n*6)
--> 密碼中間穿插數(shù)字或符號字元/Flat/+(n*2)
--> 已達到密碼最低要求項目/Flat/+(n*2)
l 扣分項目
--> 只有英文字元/Flat/-n
--> 只有數(shù)字字元/Flat/-n
--> 重復(fù)字元(Case Insensitive)/Incr/-(n(n-1))
--> 連續(xù)英文大寫字元/Flat/-(n*2)
--> 連續(xù)英文小寫字元/Flat/-(n*2)
--> 連續(xù)數(shù)字字元/Flat/-(n*2)
--> 連續(xù)字母超過三個(如abc, def)/Flat/-(n*3)
--> 連續(xù)數(shù)字超過三個(如123,234)/Flat/-(n*3)
示例:
密碼:Aa123 分?jǐn)?shù):43分 強度:未達標(biāo)準(zhǔn)
密碼:Aa12L3 分?jǐn)?shù):64分 強度:警告
HACK版密碼強度規(guī)則
說明:不在彩虹表中的密碼強度較高(彩虹表就是一個龐大的、針對各種可能的字母組合預(yù)先計算好的哈希值的集合,不一定是針對MD5算法的,各種算法的都有,有了它可以快速的破解各類密碼。)
作者:龍國富 TimD,3年產(chǎn)品人。高級產(chǎn)品經(jīng)理,目前從事互聯(lián)網(wǎng)工具類產(chǎn)品設(shè)計和數(shù)據(jù)分析工作。
更多內(nèi)容請關(guān)注微信公眾號:EasyUX