Python的學習筆記案例6--判斷密碼強度1.0

密碼強度:是指一個密碼對抗財產或者暴力破解的有效程度;一般是指一個未授權訪問者得到正確密碼的平均嘗試次數。
強密碼可以降低安全漏洞的整體風險。
簡易版(常用)規則:
       1、密碼長度至少8位
       2、密碼含有數字
       3、密碼含有字母

設置一個變量strength_level用於記錄密碼的強度,初始位0.滿足一個條件,對其加1。
       長度判斷:使用len()方法;
       包含數字判斷:使用isnumeric()方法;
       包含字母判斷:使用isalpha()方法;
       如果strength_level等於3,密碼強度合格,否則不合格。

str.isnumeric()
       檢測字符串是否只由數字組成
str.isalpha()
       檢測字符串是否只由字母組成
str.islower()
       檢測字符串中所有的字母是否都爲小寫
str.isupper()
       檢測字符串中所有的字母是否都爲大寫
更多is***()方法請參考:
       https://docs.python.org/3/library/stdtypes.html#string-methods


"""
    作者:lanxingbudui
    版本:1.0
    日期:2019-07-15
    功能:判斷密碼強度
"""


def check_number_str(password_str):
    """
    判斷字符串是否包含數字
    """
    for c in password_str:
        if c.isnumeric():
            return True
    return False


def check_letter_str(password_str):
    """
    判斷字符串是否包含字母
    """
    for c in password_str:
        if c.isalpha():
            return True
    return False


def main():
    """
    主函數
    """
    pass
    password = input('請輸入密碼:')

    # 密碼強度
    strength_level = 0

    # 規則1:密碼長度大於8位
    if len(password) >= 8:
        strength_level += 1
    else:
        print('密碼長度必須大於8位')
    # 規則2:密碼包含數字
    if check_number_str(password):
        strength_level += 1
    else:
        print('密碼要求包含數字!')
    # 規則3:密碼包含字母
    if check_letter_str(password):
        strength_level += 1
    else:
        print('密碼要求包含字母!')
    if strength_level == 3:
        print('密碼強度合格!')
    else:
        print('密碼強度不合格!')


if __name__ == '__main__':
        main()


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