python 代码之 ————判断密码强度

1.判断密码强度版本1

"""
作者:king
版本:0.1
时间:2019/04/17
"""
def check_number_exist(password_str):
    """
    判断密码是否含有数字

    """
    for c in password_str:
        if c.isnumeric():
            return True
    return False

def check_letter_exist(password_str):
    """
    判断密码是否含有字母

    """
    for c in password_str:
        if c.isalpha():
            return True
    return False

def main():
    """
    主函数

    """
    password = input('请输入密码:')

    #密码强度,初始化为0
    strength_level = 0

    #规则1:密码长度大于8
    if len(password) >= 8:
        strength_level += 1
    else:
        print('密码强度要求至少8位')

    #规则2:密码必须包含数字
    if check_number_exist(password):
        strength_level += 1
    else:
        print('密码要求包含数字')

    #规则3:密码必须包含字母
    if check_letter_exist(password):
        strength_level += 1
    else:
        print('密码要求包含字母')

if __name__ == '__main__':
    main()

判断密码强度,版本2

"""
作者:king
版本:0.2
时间:2019/04/17
功能:1.密码长度为8
     2.密码含有数字
     3.密码含有字母
     2.0增加的功能,限制密码的设置次数,循环终止
"""
def check_number_exist(password_str):
    """
    判断密码是否含有数字

    """
    has_number = False
    for c in password_str:
        if c.isnumeric():
            has_number = True
            break
    return has_number

def check_letter_exist(password_str):
    """
    判断密码是否含有字母

    """
    has_letter = False
    for c in password_str:
        if c.isalpha():
            has_letter = True
            break
    return has_letter

def main():
    """
    主函数

    """
    try_time = 5
    while try_time > 0:

        password = input('请输入密码:')

        # 密码强度,初始化为0
        strength_level = 0

        # 规则1:密码长度大于8
        if len(password) >= 8:
            strength_level += 1
        else:
            print('密码强度要求至少8位')

        # 规则2:密码必须包含数字
        if check_number_exist(password):
            strength_level += 1
        else:
            print('密码要求包含数字')

        # 规则3:密码必须包含字母
        if check_letter_exist(password):
            strength_level += 1
        else:
            print('密码要求包含字母')
        if strength_level == 3:
            print ('恭喜密码强度合格')
            break
        else:
            print('抱歉,你的密码不符合要求')
            try_time -= 1
        print()
    if try_time <= 0:


        print('尝试密码次数过多,密码设置失败,请一个小时再设置')
if __name__ == '__main__':
    main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维螺丝钉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值