密碼強度判斷
描述
用戶輸入一個字符串做為密碼,判斷密碼強度,規則為:密碼長度小於8弱密碼,密碼長度大於等於8且包含至少2種字符為中等強度、密碼包含3種字符為強、包含全部4種字符為極強。
提示:
string.digits 可返回'0123456789'
string.ascii_lowercase 可返回'abcdefghijklmnopqrstuvwxyz'
string.ascii_uppercase 可返回'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
string.punctuation 可返回'!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~'
輸入格式
輸入一個字符串
輸出格式
密碼強度的判斷結果,分:弱、中、強、極強,共四種
代碼
import string
keys = input()
a = b = c = d = num = 0
if len(keys) < 8: # 長度小於8,直接判斷為弱
print('弱')
else:
for key in keys: # 遍歷keys
if key in string.digits:
a = 1 # 如果有數字,則數字種類存在,記作1
elif key in string.ascii_lowercase:
b = 1# 如果有小寫字母,則小寫字母存在,記作1
elif key in string.ascii_uppercase:
c = 1 # 如果有大寫字母,則大小字母存在,記作1
elif key in string.punctuation:
d = 1 # 如果有特殊字符,則特殊字符存在,記作1
else: # 其他的直接跳過
pass
num = sum([a, b, c, d]) # 計算種類和
if num < 2: # 根據字符種類來判別密碼強度
print('弱')
if num == 2:
print('中')
if num == 3:
print('強')
if num == 4:
print('極強')
