|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
因为密码初级,中级和高级一开始没有理解,我理解成了要对这三个级别进行检测的了,第一个就不说了,中级和高级我根据老师的答案进行的小改动。
中级: 只能3次尝试,超过次数结束
count = 3
str1 = 'Netgear_2'
symbols = r'''~!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
while count:
flag_con = 0 #这个要是放在while 以外,也就是放在上面会使循环有问题的#
passwd = input("请输入密码: ")
length = len(passwd)
if passwd == str1:
print('Yes, you get it')
break
elif length < 8:
print('输入有误,输入密码长度不能超过8位,你还有', count-1, '次机会')
else:
for each in passwd:
if each in symbols:
flag_con += 1
break
for each in passwd:
if each in chars:
flag_con += 1
break
for each in passwd:
if each in nums:
flag_con += 1
break
if flag_con >= 2: #表示两两组合,三个当然也可以的#
if passwd != str1:
print('password input error, you have', count-1, '次机会')
else:
print('输入错误,请输入数字,字符串和特殊字符的两两组合', count-1, '次机会')
count -= 1
if count == 0:
print("已经超过3次,请稍后再试")
高级: 密码必须由特殊字符开始,为特殊字符,字母加数字的三种组合,其中字母包含大小写。
count = 3
str1 = 'Netgear_2'
symbols = r'''~!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
while count:
flag_con = 0 #这个要是放在while 以外,也就是放在上面会使循环有问题的#
passwd = input("请输入密码: ")
length = len(passwd)
if passwd == str1:
print('Yes, you get it')
break
elif length <= 3:
print('输入有误,输入密码长度不能低于3位,你还有', count-1, '次机会')
elif length > 7:
print('输入有误,输入密码长度不能超过6位,你还有', count-1, '次机会')
else:
for each in passwd: #密码必须以特殊字符开头,否则会提示 A10 行的特殊信息
if each not in symbols:
print('输入错误,请输入以特殊字符开头的密码,密码为特殊字符,字母和数字的三种组合,你还有', count-1, '次机会')
break
else:
for each in passwd:
if each in chars:
if not passwd.islower():
flag_con += 1
break
else:
print('输入错误,请输入数字,字符串和特殊字符的三种组合,其中字母请包含大小写,你还有', count-1, '次机会')
break
break
for each in passwd:
if each in nums:
flag_con += 1
break
if flag_con >= 2: #表示三三组合#
if passwd != str1:
print('password input error, you have', count-1, '次机会')
else:
print('输入错误,请输入数字,字符串和特殊字符的三种组合,你还有', count-1, '次机会')
break #必须在这个地方加break,否则下面一行的else仍然会被检测到
count -= 1
if count == 0:
print("已经超过3次,请稍后再试")
本人完全新手,有写错还望指正,谢谢! |
|