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))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章