使用正則表達(dá)式判斷密碼強(qiáng)弱
學(xué)python的re模板,寫了個(gè)文章發(fā)現(xiàn)沒人看,所以總結(jié)出來經(jīng)驗(yàn),理論沒人愛,實(shí)戰(zhàn)的人心,那么既然沒人喜歡理論就直接上實(shí)戰(zhàn),在實(shí)戰(zhàn)中精煉理論.不多說直接先上代碼
def password_level(password): weak = re.compile(r'^((\d+)|([A-Za-z]+)|(\W+))$') level_weak = weak.match(password) level_middle = re.match(r'([0-9]+(\W+|\_+|[A-Za-z]+))+|([A-Za-z]+(\W+|\_+|\d+))+|((\W+|\_+)+(\d+|\w+))+',password) level_strong = re.match(r'(\w+|\W+)+',password) if level_weak: print 'password level is weak',level_weak.group() else: if (level_middle and len(level_middle.group())==len(password)): print 'password level is middle',level_middle.group() else: if level_strong and len(level_strong.group())==len(password): print 'password level is strong',level_strong.group()
解釋一下
弱密碼:全是數(shù)字,符號(hào),字母
中等密碼:數(shù)字加上符號(hào),數(shù)字加上字母,字母加上符號(hào)
強(qiáng)密碼:三個(gè)混合.
我沒有區(qū)分大小寫,希望有興趣的可以自己寫寫.問題出現(xiàn)在\w上因?yàn)閈w等價(jià)與[A-Za-z0-9_]所以前期通過\W不能匹配到包含下滑線的字符串
我們來看看中等密碼,數(shù)字加上符號(hào)或者字母或者_是一個(gè)組,字母加上符號(hào)或者下劃線或者符號(hào)是一個(gè)組,符號(hào)或者下劃線加上字母或者數(shù)字是一個(gè)組,我總覺得這個(gè)里面的代碼好像不對(duì)但是通過測(cè)試又沒發(fā)現(xiàn)什么不對(duì)的地方,就先用這個(gè)版本0.0.1吧
測(cè)試代碼
if __name__ == '__main__': passwords = ('11','aa','LL','1a','1_','a_','a1','_1','*a','1a_','1a<') for pw in passwords: password_level(pw) '''----------------------output------------------------ #password level is weak 11 #password level is weak aa #password level is weak LL #password level is middle 1a #password level is middle 1_ #password level is middle a_ #password level is middle a1 #password level is middle _1 #password level is middle *a #password level is strong 1a_ #password level is strong 1a< '''
以上所述是小編給大家介紹的使用正則表達(dá)式判斷密碼強(qiáng)弱的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Java使用正則表達(dá)式對(duì)注冊(cè)頁面進(jìn)行驗(yàn)證功能實(shí)現(xiàn)
本文給大家分享一段有關(guān)java使用正則表達(dá)式對(duì)注冊(cè)頁面進(jìn)行驗(yàn)證的代碼,代碼比較簡(jiǎn)單,非常不錯(cuò),感興趣的朋友一起學(xué)習(xí)吧2016-09-09自定義ubb代碼,preg_replace()函數(shù)的一些代碼
自定義ubb代碼,preg_replace()函數(shù)的一些代碼...2007-03-03正則表達(dá)式匹配${key}并在Java中使用的詳細(xì)方法
這篇文章主要介紹了正則表達(dá)式匹配${key}并在Java中使用的詳細(xì)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03手機(jī)號(hào)碼驗(yàn)證方法(正則驗(yàn)證)
這篇文章主要介紹了手機(jī)號(hào)碼驗(yàn)證方法(正則驗(yàn)證),在文章中還給大家補(bǔ)充了最新手機(jī)號(hào)的驗(yàn)證正則表達(dá)式,需要的朋友可以參考下2017-02-02正則表達(dá)式驗(yàn)證IPV4地址功能實(shí)例分析
這篇文章主要介紹了正則表達(dá)式驗(yàn)證IPV4地址功能,結(jié)合實(shí)例形式分析了IPV4地址驗(yàn)證的原理及具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-01-01