我需要一些幫助,弄清楚如何使一個函數檢查一串條件的字符串。Python密碼檢查器
密碼必須長至少5個字符
密碼必須包含至少一個大寫字母
密碼必須包含至少兩個數字
密碼不能包含字符「E」或「e」
密碼必須包含t個最低一個特殊符號:!,@,#,$,%,^,&
現在這一切,我有
def passwordChecker(password):
'''
'''
caps = sum(1 for c in password if c.isupper())
nums = sum(1 for c in password if c.isdigit())
symb = any(c in password for c in '[email protected]#$%^&')
note = any(c in password for c in 'Ee')
if len(password) <5:
return False
elif caps < 1:
return False
elif nums < 1:
return False
elif symb == False:
return False
else:
return True
編輯**
剛剛意識到我還必須檢查是否有常用的密碼,如'密碼'或'111111',我真的不知道我會如何處理這個問題。
import re
def passwordChecker(password):
return all(re.search(pattern, password) for pattern in
('.{5}', '[A-Z]', '\d.*\d', '^[^Ee]*$', '[[email protected]#$%^&]'))
使用五個幾乎無效,五個幾乎沒有有效的測試演示(之一:
您忘記檢查'note == False' –
而'nums'應該是'nums <2'而不是 –
您需要確定哪些值有資格作爲常用密碼,然後檢查它們。 – TigerhawkT3