1. 程式人生 > >Python練習題9(密碼判斷):請寫一個密碼安全性檢查的程式碼程式碼: 首先判斷密碼的強度,如果結果是低或中則列印如何提升密碼安全級別的提示,而高則直接退出

Python練習題9(密碼判斷):請寫一個密碼安全性檢查的程式碼程式碼: 首先判斷密碼的強度,如果結果是低或中則列印如何提升密碼安全級別的提示,而高則直接退出

'''請寫一個密碼安全性檢查的程式碼程式碼:
首先判斷密碼的強度,如果結果是低或中則列印如何提升密碼安全級別的提示,而高則直接退出

# 密碼安全性檢查程式碼
#
# 低階密碼要求:
# 1. 密碼由單純的數字或字母組成
# 2. 密碼長度小於等於8位
#
# 中級密碼要求:
# 1. 密碼必須由數字、字母或特殊字元(僅限:[email protected]#$%^&*()_=-/,.?<>;:[]{}|\)任意兩種組合
# 2. 密碼長度不能低於8位
#
# 高階密碼要求:
# 1. 密碼必須由數字、字母及特殊字元(僅限:[email protected]#$%^&*()_=-/,.?<>;:[]{}|\)三種組合
# 2. 密碼只能由字母開頭
# 3. 密碼長度不能低於16位'''

 

方法一:通過檢查迴圈輸入密碼的每一個字母,是否包含數字、字母或特殊字元,然後通過邏輯運算子組合判斷是為低階密碼/中級密碼/高階密碼。

 1 def check_passwd():
 2     character = '[email protected]#$%^&*()_=-/,.?<>;:[]{}|\\'
 3     while True:
 4         context = input("請輸入密碼:")
 5         length = len(context)
 6         dit = 0
 7         alp = 0
8 char = 0 9 flag = 1 10 for n in context: 11 if n in character: #檢查密碼是否有特殊字元 12 char = 1 13 elif n.isdigit(): #檢查密碼是否有數字 14 dit = 1 15 elif n.encode('
UTF-8').isalpha(): #檢查密碼是否有字母 16 alp = 1 17 else: #檢查密碼含有其他字元 18 flag = 0 19 20 if flag == 0: 21 result = "密碼不合法!密碼只能由數字、字母及特殊字元組成,請重新輸入:" 22 elif dit and alp and char and length >= 16 and context[0].isalpha(): 23 #高階密碼,密碼有數字、字母和特殊字母,長度大於等於16位,由字母開頭 24 result = "您的密碼等級為高" 25 break 26 elif ((dit and alp) or (dit and char) or (alp and char)) and length > 8: 27 #密碼由數字和字母、或數字和特殊字元、或字母和特殊字元組成,且長度大於8位 28 result = "您的密碼等級為中,請使用數字、字母及特殊字元三種組合,由字母開頭,密碼位數不少於16位來提升至高等級" 29 elif (dit or alp) or length <=8: 30 #密碼由數字或字母組成,或長度小於等於8位 31 result = "您的密碼等級為低,請使用數字、字母及特殊字元三種組合,由字母開頭,密碼位數不少於16位來提升至高等級" 32 else: 33 #其他情況則返回密碼不合法 34 result = '密碼不能全為特殊字元,請重新輸入!' 35 36 print(result) 37 38 check_passwd()