Python 判断密码等级的强弱,不使用正则表达式-阿里云开发者社区

开发者社区> 安全> 正文
登录阅读全文

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

简介: 转载请标明出处: http://blog.csdn.net/DJY1992/article/details/72845025 本文出自:【奥特曼超人的博客】 编写一个函数,接收一个字符串作为参数,判断该字符串作为密码的话其安全强度如何。

转载请标明出处:
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("-弱密码-")

运行效果:

奥特曼超人杜锦阳

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: