用户设置密码后,判断密码强度是否合格。
判断规则:
1.密码长度必须不小于8;
2.密码中应该包含字母;
3.密码中应该包含数字;
4.密码中应该包含设定字符:,.!;?#%&<>+-*/;
首先要满足的条件是长度大于八,否则直接判定不合格,其他三类作为提醒并给出当前密码强度。
def在python中用来定义函数,变量,类或模块,本文用来定义函数。例如:def func1(n):
isnumeric()函数可以判断字符串中是否含有数字,若数字或字符串中包含数字,返回True;
isalpha()函数可以判断字符串字符串中是否含有字母,若字符串中只包含字母,返回非零(小写字母为2,大写字母为1)。
初始化密码强度strength_level1,2,3,4为0,每满足一个判断规则就记为1。最后对其密码强度作出判断。
#判断是否含有数字
def check_number_exit(password):
for x in password:
if x.isnumeric():
return True
return False
# 判断是否含有字母
def check_letter_exit(password):
for x in password:
if x.isalpha():
return True
return False
#判断是否含有字符
def check_ch_exit(password):
for x in password:
if x in ',.!;?#%&<>+-*/':
return True
return False
#主函数
def main():
password_str = input("请输入密码:")
strength_level1 = 0
strength_level2 = 0
strength_level3 = 0
strength_level4 = 0
# 密码长度大于8
if len(password_str) >= 8:
strength_level1 = 1
else:
print("抱歉!密码长度应不小于8位!")
# 包含数字
if check_number_exit(password_str):
strength_level2 = 1
else:
print("抱歉!密码中应包含数字!")
# 包含字母
if check_letter_exit(password_str):
strength_level3 = 1
else:
print("抱歉!密码中应包含字母!")
#包含字符
if check_ch_exit(password_str):
strength_level4 =1
else:
print("抱歉!密码中应包含字符!")
if strength_level1 == 0:
print("您的密码强度不合格!")
elif strength_level1 + strength_level2 + strength_level3 + strength_level4==1 :
print("您的密码强度偏低!")
elif strength_level1 + strength_level2 + strength_level3 + strength_level4 == 2:
print("您设置的密码强度合格!")
elif strength_level1 + strength_level2 + strength_level3 + strength_level4== 3:
print("您设置的密码强度较强!")
elif strength_level1 + strength_level2 + strength_level3 + strength_level4 == 4:
print("您设置的密码强度极强!")
if __name__ == "__main__":
main()
运行结果: