|
|
发表于 2020-2-3 16:31:06
|
显示全部楼层
试试这样:
- #只含有数字或只含有字母或只含有特殊字符 or 长度小于等于8 -> 低
- #含有数字、字母、特殊字符 and 以字母开头 and 长度大于等于16 -> 高
- #其他除了空格和空字符都是 -> 中
- #有问题:为什么永远没有高?
- nums = '1234567890'
- chars ='asdfghjklzxcvbnmqwertyuiopQWERTYUIOPLKJHGFDSAZXCVBNM'
- symbols ='~!@#$%^&*()_=-/,.?;:[]{}|\\'
- #symbols = r'''~!@#$%^&*()_=-/,.?;:[]{}|\'''#赋值原字符要用三重引号
- count = 0
- flag = 0
- password = input('请输入需要检查的密码组合 :')
- while 1:
- if password == '' or password.isspace():
- password = input('您输入的密码为空,请重新输入密码 :')
- else:
- break
- for i in password:#写三个for循环而不写三个if是为了减轻cpu压力
- if i in nums:
- count += 1#count计算出密码的组成类型由多少种
- break
- for i in password:
- if i in chars:
- count += 1
- break
- for i in password:
- if i in symbols:
- count += 1
- if count == 0:
- print('请输入英文密码!')
- else:
- print('您的密码安全级别被评为 :',end='')#出现相同的想办法合成一个及利用end=''
- if count == 1 or len(password) <= 8:#等号 -> ==
- print('低')
- flag = 1
- elif count >= 3 and len(password) >= 16 and (password[0] in chars):
- print('高')
- print('请继续保持')
- else:
- print('中')
- flag = 1
- if flag:
- print('''请按以下方式提升您的密码安全级别 :
- 1.密码必须由数字、字母及特殊字符三种组合
- 2.密码只能由字母开头
- 3.密码长度不能低于16位''')
复制代码 |
|