python程序设计:用正则表达式验证密码的强度

1、题目要求:

写一个函数,用正则表达式验证密码的强度,要求:

1.密码的长度大于或等于8位数

2.强:字母+数字+特殊字符

3.中:字母+数字,字母+特殊字符,数字+特殊字符

4.弱:纯数字,纯字母,纯特殊字符

2、代码:

#!/usr/bin/python

import re


def verify_password(password):
    printTip = "密码强度:"
    m = re.match(r'\d+|[a-z]+|[^a-z0-9]+', password, re.I).span()
    # 若匹配的字符长度等于用户输入长度,证明其中一种匹配规则能完整匹配整个密码即纯数字,纯字母,纯特殊字符
    if m[1] == len(password):
        printTip = printTip + "弱。"
    else:
        # 这里有三套匹配规则,若数字、字母、或者字符任意一个匹配不到字符,m都为None,否则说明三种情况都有
        m1 = re.search(r'\d+', password)
        m2 = re.search(r'[a-z]+', password, re.I)
        m3 = re.search(r'[^a-z0-9]+', password, re.I)
        if m1 and m2 and m3:
            printTip = printTip + "强。"
        else:
            printTip = printTip + "中。"
    return printTip


if __name__ == '__main__':
    password = input("请输入密码:")
    # 如果用户输入不足8位数,则让用户继续输入
    while len(password) < 8:
        password = input("密码的长度不足8位数,请重新输入密码:")
    print("密码设置成功!" + verify_password(password))

猜你喜欢

转载自blog.csdn.net/qq_41799219/article/details/105475380
今日推荐