python密码安全强度测试的代码(主要是函数调用问题)

img

检测密码的安全强度。一般密码字符主要有4类:数字、小写字母、大写字母和特殊的几个标点符号(@;,!?<>.)。

密码安全强度主要与字符串的复杂程度有直接关系。如果字符串中包含的字符种类越多,其安全强度越高。这里把安全强度划分为4个等级:安全强度高、中高、中低、弱。其中,“安全强度高”表示字符串中同时包含数字、小写字母、大写字母和标点符号这4种字符,而“安全强度弱”表示仅包含其中一种字符。其他依次类推。

编写程序,输入一个密码字符串,输出该密码的安全强度。

实验要求:
(1)用函数来组织代码,函数参数为密码字符串,返回值为安全强度;
(2)密码字符个数必须大于等于6;

请问这个代码怎么修改,还有返回值这么为安全强度?


while True:
    try:
        mode=input("请输入密码,测试安全程度:")
        s=len(mode)
        assert s>=6
        break
    except:
        print("请重新输入密码,要求密码字符个数必须大于等于6")       
test()    
def test(mode):
    c=0
    tring = "@;,!?<>."
    for i in string:
        if i in mode:
            c=s+1
    for i in mode:
        if '0'<=i<='9':
            c+=1
            break
    for i in mode:
        if 'a'<=i<='z' :
            c+=1
            break
    for i in mode:
        if 'A'<=i<='Z' :
            c+=1
            break
    def safe():
        nonlocal c
        if c==1:print("该密码安全强度弱")
        elif c==2:print("该密码安全强度中低")
        elif c==3:print("该密码安全强度中高")
        elif c==4:print("该密码安全强度强")
    safe()

 
import re

def password_level(pw):
    if len(pw)<6:
        return '长度不符合要求'
    grp = 0
    if re.search('[a-z]',pw)!=None:
        grp += 1
    if re.search('[A-Z]',pw)!=None:
        grp += 1
    if re.search('[0-9]',pw)!=None:
        grp += 1
    if re.search('[!"#$%&\'\(\)*+,\./:;<=>?@\[\]^_`\{|\}~-]',pw)!=None:
        grp += 1
    return ['无','弱','中低','中高','强'][grp]
while True:
    try:
        pw=input("请输入密码,测试安全程度:")
        s=len(pw)
        assert s>=6
        break
    except:
        print("请重新输入密码,要求密码字符个数必须大于等于6")       
print(password_level(pw) )
    

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632