對我來說,regex絕對是最簡單的方法。
給定乙個示例密碼password,您檢查密碼的方式是:import re
# check if contains at least one digit
if re.search(r'\d', password):
print "has a digit"
# check if contains at least one uppercase letter
if re.search(r'[a-z]', password):
print "has uppercase letter"
# check if contains at least one lowercase letter
if re.search(r'[a-z]', password):
print "has lowercase letter"
對於其他部分,可以繼續使用.isupper()和.islower()。
順便說一下,這部分**:if p.isupper and p.islower:
print "your password is of medium strength, try adding some numbers"
將無法按您的要求執行。首先,您實際上並沒有呼叫這些方法,因為您沒有放置括號——您需要編寫if p.isupper() and p.islower():。其次,這並不是你想要的。您試圖檢查它是否同時包含小寫和大寫數字。相反,您要檢查它是否完全大寫和完全小寫,顯然它不能同時是大寫和小寫,因此if語句將始終返回false。相反,您需要使用類似於:if re.search(r'[a-z]', password) and re.search(r'[a-z]', password):
或者,如果沒有re:import string
if any(letter in string.ascii_lowercase for letter in password) and \
any(letter in string.ascii_uppercase for letter in password):
或:if any(letter.islower() for letter in password) and \
any(letter.isupper() for letter in password):
我更喜歡re,因為它更簡潔。
Python密碼的強度
密碼是賬戶的重要安全保障,涉及到安全問題,太簡單的密碼容易被猜到或破解。請用程式實現 用函式實現乙個校驗密碼強度的函式,用於提醒使用者在註冊時,密碼是否足夠安全。以下為密碼強度校驗規則 密碼長度在 6 位及以上,強度 1,在 8 位及以上,強度 2,12 位及以上,強度 4 有大寫字母,強度 2 除...
python判斷密碼強度並輸出 密碼強度判斷
python 庫def pdsz cd nnnn false for c in cd if c.isnumeric nnnn true break return nnnn def pdzm cd nnnn false for c in cd if c.isupper nnnn true break ...
密碼的強度
密碼是賬戶的重要安全保障,涉及到安全問題,太簡單的密碼容易被猜到或破解。請用程式實現 用函式實現乙個校驗密碼強度的函式,用於提醒使用者在註冊時,密碼是否足夠安全。以下為密碼強度校驗規則 密碼長度在 6 位及以上,強度 1,在 8 位及以上,強度 2,12 位及以上,強度 4 有大寫字母,強度 2 除...