Python 判断密码等级的强弱,不使用正则表达式

转载请标明出处:
http://blog.csdn.net/DJY1992/article/details/72845025
本文出自:【奥特曼超人的博客】



编写一个函数,接收一个字符串作为参数,判断该字符串作为密码的话其安全强度如何。如果字符串中只包含大写字母、小写字母、数字字符或标点符号中的一种则为弱密码,包含两种为中低安全密码,包含三种为中高安全密码,包含四种则为强密码。

老师说,不许使用正则表达式哦

大家可以在群里讨论,或者直接把你的答案写在评论里哦~

题目地址:http://blog.csdn.net/baiyuzhong2012/article/details/72841797



这里留下我的答案:

#舍弃了
def pwdType(str):

        """
           if(str.isupper()|str.istitle()|str.isalnum()):
                #所有单词都是首字母大写
                if(str.istitle()): 
                #所有字符都是大写
                if(str.isupper()): 
                #所有字符都是小写 
                if(str.islower()): 
                #所有字符都是数字 
                if(str.isdigit()):
                # 所有字符都是字母
                if(str.isalpha()):
                #所有字符都是数字或者字母 
                if(str.isalnum()):
        """

        return 

#拆分矩阵查询
def isPwdLevel(strs):
        #模拟底层
        special = ['!','@','#','$','%','^','&','*','(',')','-','_','+','=','{','}',';',':','[',']',';',':','\"','\\','|',',','<','.','>','/','?','~','`']       
        engUpper = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
        engLower = ['a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
        engNums = ['0','1','2','3','4','5','6','7','8','9']
        abc = list(strs)
        flag = 0
        flagSp = 0
        flagUp = 0
        flagLo = 0
        flagNu = 0
        for i in abc: 
            for k in special:
                if(i==k):
                    print("包含特殊字符")
                    flagSp = 1
            for k in engLower:
                if(i==k):
                    print("包含小写字母") 
                    flagUp = 1               
            for k in engUpper:
                if(i==k):
                    print("包含大写字母")
                    flagLo = 1       
            for k in engNums:
                if(i==k):
                    print("包含数字")
                    flagNu = 1

        #编写一个函数,接收一个字符串作为参数,判断该字符串作为密码的话其安全强度如何。
        #如果字符串中只包含大写字母、小写字母、数字字符或标点符号中的一种则为弱密码,
        #包含两种为中低安全密码
        #包含三种为中高安全密码
        #包含四种则为强密码。
        flag = (flagSp+flagNu+flagLo+flagUp)

        return flag

这样写方便操作元素,在Main方法里面调用一下就完成了。


if __name__=="__main__":

    #pwd = "Ab4##\""  
    pwd = "Karl-Dujinyang-309933706@qq.com"
    ret = isPwdLevel(pwd)
    vat = isinstance(ret, int)

    print(ret)
    if(vat == True):
        if(ret == 4):
            print("-强密码-")
        elif(ret == 3):
            print("-中高安全密码-")
        elif(ret == 2):
            print("-中低安全密码-")
        elif(ret == 1):
            print("-弱密码-")

运行效果:

奥特曼超人杜锦阳

(如有 错误或者更优方法欢迎指出)

|| 版权声明:本文为博主杜锦阳原创文章,转载请注明出处。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值