zhdwinter 发表于 2018-5-18 22:32:59

打卡,密码评级

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

import string
password = input('请输入您要检查的密码组合:')
L = len(password)
alphabet = string.ascii_letters
number = string.digits
punc = '~!@#$%^&*()_-={}[]|\:;<>?,./'
for i in alphabet:
      if i in password:
            a = 1
            break
      else:
            a = 0
for j in number:
      if j in password:
            b = 1
            break
      else:
            b = 0
for k in punc:
      if k in password:
            c = 1
            break
      else:
            c = 0
   
if L <= 8 or password.isdigit() or password.isalpha():
    print('您的密码安全级别评定为:低')
    print("""请按以下方式提升您的密码安全级别:
    1、密码必须由数字、字母及特殊字符三种组合
    2、密码只能由字母开头
    3、密码长度不能低于16位'""")
elif L >= 16and a + b + c == 3and password in alphabet:
    print('您的密码安全级别评定为:高')
    print('请继续保持')
else:
    print('您的密码安全级别评定为:中')
    print("""请按以下方式提升您的密码安全级别:
    1、密码必须由数字、字母及特殊字符三种组合
    2、密码只能由字母开头
    3、密码长度不能低于16位'""")

大家觉得这样写有问题吗,我觉得对中级密码的评定好像不是太好,但是我也不知怎么优化
页: [1]
查看完整版本: 打卡,密码评级