鱼C论坛

 找回密码
 立即注册
查看: 1086|回复: 2

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

[复制链接]
发表于 2020-3-28 20:36:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
看了答案,感觉我写的只符合了这个要求,要是输入的密码都不在(低中高密码)要求范围内,从实用性上来说,是否可以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[0] in d: #特殊字符数大于2,密码长度大于16,密码首位为字母
            print('这是高级密码')
        else:
            print('输入的密码不符合规范')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-29 21:11:48 | 显示全部楼层
我觉得主要问题是没有定义不符合密码要求的标准
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-29 21:16:33 | 显示全部楼层
不符合低的条件应该是:

密码未用数字和英文,全用特殊符号,或空格 且小于6(哈哈这是我想一般密码都要大于等于6)?又或者不要小于6这个条件?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 15:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表