|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
symblos = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdeefghijklnmopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
pw = input('请输入需要检测的密码组合:')
lenght = len(pw)
while (pw.isspace() or lenght == 0):
pw = input('需有密码不能为空,重新输入:')
lenght = len(pw)
for a in pw:
if a in symblos and (a not in nums or a not in nums):
pw = input('需有密码不能纯符号,重新输入:')
lenght = len(pw)
if lenght <= 8:
flag_len = 1
elif 8 < lenght < 16:
flag_len = 2
elif lenght >= 16:
flag_len = 3
flag_con = 0
for each in pw:
if each in symbols:
flag_con += 1
break
for each in pw:
if each in chars:
flag_con += 1
break
for each in pw:
if each in nums:
flag_con += 1
break
while True :
print('您的密码安全级别为:', end='')
if flag_len == 1 or flag_con == 1:
print('低')
elif flag_len == 3 and flag_com ==3 and (pw[0] in chars):
print('高')
else:
print('中')
我加了一个循环来判断是否是纯符号,测试是ok的,看看大神们有木有更好的解答
帮你改了下代码中的错误,最后你的 while 循环也是个死循环,改完的代码只有输入为高级密码才会退出程序:
- symblos = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
- chars = 'abcdeefghijklnmopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
- nums = '0123456789'
- pw = input('请输入需要检测的密码组合:')
- lenght = len(pw)
- while True:
- while (pw.isspace() or lenght == 0):
- pw = input('需有密码不能为空,重新输入:')
- lenght = len(pw)
- while True:
- for a in pw:
- if a not in symblos:
- break
- else:
- pw = input('需有密码不能纯符号,重新输入:')
- lenght = len(pw)
- continue
- break
- if lenght <= 8:
- flag_len = 1
- elif 8 < lenght < 16:
- flag_len = 2
- elif lenght >= 16:
- flag_len = 3
- flag_con = 0
- for each in pw:
- if each in symblos:
- flag_con += 1
- break
- for each in pw:
- if each in chars:
- flag_con += 1
- break
- for each in pw:
- if each in nums:
- flag_con += 1
- break
- print('您的密码安全级别为:', end='')
- if flag_len == 1 or flag_con == 1:
- print('低')
- elif flag_len == 3 and flag_con ==3 and (pw[0] in chars):
- print('恭喜你,你的密码强度为:高!')
- break
- else:
- print('中')
- pw = input('请重新输入需要检测的密码组合:')
- lenght = len(pw)
复制代码
|
|