Python练习题9(密码判断):请写一个密码安全性检查的代码代码: 首先判断密码的强度,如果结果是低或中则打印如何提升密码安全级别的提示,而高则直接退出

'''请写一个密码安全性检查的代码代码:
首先判断密码的强度,如果结果是低或中则打印如何提升密码安全级别的提示,而高则直接退出

# 密码安全性检查代码
#
# 低级密码要求:
# 1. 密码由单纯的数字或字母组成
# 2. 密码长度小于等于8位
#
# 中级密码要求:
# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
# 2. 密码长度不能低于8位
#
# 高级密码要求:
# 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
# 2. 密码只能由字母开头
# 3. 密码长度不能低于16位'''

方法一:通过检查循环输入密码的每一个字母,是否包含数字、字母或特殊字符,然后通过逻辑运算符组合判断是为低级密码/中级密码/高级密码。

 1 def check_passwd():
 2     character = '~!@#$%^&*()_=-/,.?<>;:[]{}|\\'
 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()

猜你喜欢

转载自www.cnblogs.com/felixqiang/p/10261288.html
今日推荐