使用正則表達(dá)式怎么判斷密碼的強(qiáng)弱?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
專業(yè)從事網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,高端網(wǎng)站制作設(shè)計(jì),成都微信小程序,網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠服務(wù),采用H5頁面制作+CSS3前端渲染技術(shù),響應(yīng)式網(wǎng)站,讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項(xiàng)小組,與您實(shí)時(shí)在線互動(dòng),隨時(shí)提供解決方案,暢聊想法和感受。
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< '''
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。