首頁  >  文章  >  web前端  >  用正規表示式驗證判斷密碼的強弱程度並且進行提示

用正規表示式驗證判斷密碼的強弱程度並且進行提示

php中世界最好的语言
php中世界最好的语言原創
2018-03-29 15:08:571841瀏覽

這次帶給大家用正規表示式驗證判斷密碼的強弱程度並且進行提示,用正則表達式驗證判斷密碼的強弱程度並且進行提示的注意事項有哪些,下面就是實戰案例,一起來看一下。

學python的re模板,寫了個文章發現沒人看,所以總結出來經驗,理論沒人愛,實戰的人心,那麼既然沒人喜歡理論就直接上實戰,在實戰中精煉理論.不多說直接先上代碼

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()

解釋一下

弱密碼:全是數字,符號,字母

中等密碼:數字加上符號,數字加上字母,字母加上符號

強密碼:三個混合.

我沒有區分大小寫,希望有興趣的可以自己寫寫.問題出現在\w上因為\w等價與[A-Za-z0-9_]所以前期通過\W不能匹配到包含下滑線的字符串

我們來看看中等密碼,數字加上符號或字母或_是一個組,字母加上符號或下劃線或符號是一個組,符號或下劃線加上字母或數字是一個組,我總覺得這個裡面的程式碼好像不對但是透過測試又沒發現什麼不對的地方,就先用這個版本0.0.1吧

測試程式碼

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<
'''

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

js中的正規表示式如何使用(附程式碼)

用正規表示使用者的帳號密碼以及手機號碼與身分證的方法

以上是用正規表示式驗證判斷密碼的強弱程度並且進行提示的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn