ab16838123 发表于 2020-3-28 20:36:17

第014讲:字符串。【关于密码安全性检查的代码】

看了答案,感觉我写的只符合了这个要求,要是输入的密码都不在(低中高密码)要求范围内,从实用性上来说,是否可以print('输入的密码不符合规范')来代替?
# 密码安全性检查代码
#
# 低级密码要求:
#   1. 密码由单纯的数字或字母组成
#   2. 密码长度小于等于8位
#
# 中级密码要求:
#   1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
#   2. 密码长度不能低于8位
#
# 高级密码要求:
#   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
#   2. 密码只能由字母开头
#   3. 密码长度不能低于16位


b="""~!@#$%^&*()_=-/,.?<>;:[]{}|\\""" #特殊字符串
c=0                                 #用来判断特殊字符串个数
d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'#用来判断密码首位是否是字母
while True:
    password=input('请输入你的密码:')
    if password.isalnum()==True and len(password)<=8: #全数字或全字母,密码长度小于等于8
      print('这是低级密码')
    else:
      for i in password:                      #得到每未数密码
            if i in b:                        #判断是存在特殊字符
                c+=1
      if c==2 and 8<len(password)<=16:      #特殊字符数为2,密码长度9~16
            print('这是中级密码')
      elif c>=3 and len(password)>16 and password in d: #特殊字符数大于2,密码长度大于16,密码首位为字母
            print('这是高级密码')
      else:
            print('输入的密码不符合规范')

Twilight6 发表于 2020-3-29 21:11:48

我觉得主要问题是没有定义不符合密码要求的标准

Twilight6 发表于 2020-3-29 21:16:33

不符合低的条件应该是:

密码未用数字和英文,全用特殊符号,或空格 且小于6(哈哈这是我想一般密码都要大于等于6)?又或者不要小于6这个条件?
页: [1]
查看完整版本: 第014讲:字符串。【关于密码安全性检查的代码】