关于密码检测的提问

本人python小白,昨天尝试写一个检测密码复杂程度的脚本,其要求如下:

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

我想用三个if语句去判断密码中是否分别含有数字,字母和特殊字符,因为还没有学习到正则表达式,我就想用简单的语法来实现这个功能(后来知道了用for循环较好),但是不明白我这个写的有哪里不对(没有大写字母和字母开头的检测,因为暂时想先试一下愈发的正确性):

passwd = input('请输入密码:')
weichang = len(passwd)
lei = 0  
num = 0
alp = 0
zif = 0
if '0' or '1' or '2'or '3' or '4' or '5' or '6' or '7' or '8' or '9' in passwd:
    num = 1
else :
    num = 0

if 'a' or 'b' or 'c' or 'd' or 'e' or'f'or 'g'or 'h' or 'i' or 'j' or 'k' or 'l' or 'm' or 'n' or 'o' or 'p' or 'q' or 'r' or 's' or 't' or 'u' or  'v' or 'w' or 'x' or 'y' or 'z' in 'passwd':
    alp = 1
else:
    alp = 0
if '~' or '!' or '@' or '#' or '$' or '%' or '^' or '&' or '*'or '(' or ')' or '_' or '=' or '-' or '/' or ',' or '.' or '?' or '<' or '>' or ';' or ':' or '[' or ']' or '{' or '}' or '|' or '\\' in 'passwd':
    zif = 1
else:
    zif = 0
lei = num + alp +zif
print(weichang,num,alp,zif,lei)                #检测是哪一个数字计算错误

但是我检测了一下,发现无论密码是什么样的,num,alp,zif 这三个参数都为1,lei一直都是3,真的不太明白,请大神们指点一下,感谢!

发布了1 篇原创文章 · 获赞 0 · 访问量 6
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览