判断密码强度(Python)

用户设置密码后,判断密码强度是否合格。

判断规则:

1.密码长度必须不小于8;

2.密码中应该包含字母;

3.密码中应该包含数字;

4.密码中应该包含设定字符:,.!;?#%&<>+-*/;

首先要满足的条件是长度大于八,否则直接判定不合格,其他三类作为提醒并给出当前密码强度。

def在python中用来定义函数,变量,类或模块,本文用来定义函数。例如:def func1(n): 

isnumeric()函数可以判断字符串中是否含有数字,若数字或字符串中包含数字,返回True;

isalpha()函数可以判断字符串字符串中是否含有字母,若字符串中只包含字母,返回非零(小写字母为2,大写字母为1)。

初始化密码强度strength_level1,2,3,4为0,每满足一个判断规则就记为1。最后对其密码强度作出判断。
 


    #判断是否含有数字
    
def check_number_exit(password):
    
    for x in password:
        if x.isnumeric():
            return True
    return False


   # 判断是否含有字母
def check_letter_exit(password):
 
    for x in password:
        if x.isalpha():
            return True
    return False
#判断是否含有字符
def check_ch_exit(password):
    for x in password:
        if x in ',.!;?#%&<>+-*/':
            return True
    return False
#主函数
def main():
    
    password_str = input("请输入密码:")
    strength_level1 = 0
    strength_level2 = 0
    strength_level3 = 0
    strength_level4 = 0
    # 密码长度大于8
    if len(password_str) >= 8:
        strength_level1 = 1
    else:
        print("抱歉!密码长度应不小于8位!")
    # 包含数字
    if check_number_exit(password_str):
        strength_level2 = 1
    else:
        print("抱歉!密码中应包含数字!")
    # 包含字母
    if check_letter_exit(password_str):
        strength_level3 = 1
    else:
        print("抱歉!密码中应包含字母!")
    #包含字符
    if check_ch_exit(password_str):
        strength_level4 =1
    else:
        print("抱歉!密码中应包含字符!")
    if strength_level1 == 0:
        print("您的密码强度不合格!")
    elif strength_level1 + strength_level2 + strength_level3 + strength_level4==1 :
        print("您的密码强度偏低!")
    elif strength_level1 + strength_level2 + strength_level3 + strength_level4 == 2:
        print("您设置的密码强度合格!")
    elif strength_level1 + strength_level2 + strength_level3 + strength_level4== 3:
        print("您设置的密码强度较强!")
    elif strength_level1 + strength_level2 + strength_level3 + strength_level4 == 4:
        print("您设置的密码强度极强!")

if __name__ == "__main__":
    main()

运行结果:

 

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Python 判断密码强度可以通过以下几个方面来实现: 1. 密码长度:判断密码长度是否符合要求,一般要求密码长度在8到16个字符之间。 2. 包含数字:判断密码中是否包含数字,数字可以增加密码的复杂度。 3. 包含字母:判断密码中是否包含大小写字母,字母也可以增加密码的复杂度。 4. 包含符号:判断密码中是否包含特殊符号,如 !、@、#、$、%等。 5. 避免常见密码:判断密码是否为常见密码,如 123456、password、qwerty 等。 你可以使用Python编写代码实现上述功能。下面是一个简单的示例代码: ``` def check_password_strength(password): # 判断密码长度是否符合要求 if len(password) < 8 or len(password) > 16: return "密码长度不符合要求" # 判断密码中是否包含数字 has_number = False for char in password: if char.isdigit(): has_number = True break if not has_number: return "密码中必须包含数字" # 判断密码中是否包含字母 has_letter = False for char in password: if char.isalpha(): has_letter = True break if not has_letter: return "密码中必须包含字母" # 判断密码中是否包含特殊符号 has_symbol = False for char in password: if not char.isalnum(): has_symbol = True break if not has_symbol: return "密码中必须包含特殊符号" # 避免使用常见密码 common_passwords = ["123456", "password", "qwerty"] if password in common_passwords: return "不能使用常见密码" # 密码强度符合要求 return "密码强度符合要求" ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值