」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 用 Python 建構密碼強度檢查器

用 Python 建構密碼強度檢查器

發佈於2024-11-01
瀏覽:547

大家好,歡迎來到今天的教學。今天,我們將使用 Python 建立一個簡單的密碼強度檢查器。我們將逐步解釋該程式碼的工作原理,並提供有關如何改進密碼的提示。

為什麼密碼強度很重要?

弱密碼會讓駭客更容易透過各種方法猜測或破解,從而使您的個人資訊面臨風險。強密碼是:

  • 夠長(至少12個字)
  • 混合使用字母(大寫和小寫)、數字和特殊字元
  • 避免常見或可預測的單字

讓我們開始建立一個根據這些規則評估密碼強度的工具。

設定您的環境

在我們開始編碼之前,請確保您的電腦上安裝了 Python。

建立一個新的 Python 文件,您將在其中編寫程式碼。另外,下載包含最常見密碼的檔案(稍後我們將詳細介紹)並將該檔案保存在與該專案的 Python 檔案相同的目錄中。

導入必要的庫

import string

字串模組提供了有用的常數來檢查字元類型,如大寫字母、數字和特殊字元。

檢查常用密碼

def check_common_password(password):
    with open('common-password.txt', 'r') as f:
        common = f.read().splitlines()
    if password in common:
        return True
    return False

此函數檢查給定的密碼是否在常用密碼清單中。

  • 它會開啟我們先前下載的名為「common-password.txt」的檔案。
  • 它將該檔案中的所有密碼讀取到清單中。
  • 如果輸入的密碼在此清單中,則傳回 True(表示它是通用密碼,因此是弱密碼)。
  • 否則回傳False。

為什麼這很重要? 許多駭客從嘗試通用密碼開始,因此使用密碼會讓您的帳戶非常容易受到攻擊。

評估密碼強度

def password_strength(password):
    score = 0
    length = len(password)

    upper_case = any(c.isupper() for c in password)
    lower_case = any(c.islower() for c in password)
    special = any(c in string.punctuation for c in password)
    digits = any(c.isdigit() for c in password)

    characters = [upper_case, lower_case, special, digits]

    if length > 8:
        score  = 1
    if length > 12:
        score  = 1
    if length > 17:
        score  = 1
    if length > 20:
        score  = 1

    score  = sum(characters) - 1

    if score 



此函數根據多個標準評估密碼的強度。

  • 密碼長度超過 8、12、17 和 20 個字元將獲得積分。
  • 它檢查是否有大寫字母、小寫字母、特殊字元和數字。

評分是如何進行的?

  1. 分數從 0 開始。
  2. 每通過一個長度閾值就加 1 分。
  3. 使用的每種字元(大寫、小寫、特殊、數字)加 1 分,減 1。
  4. 根據最終得分,將密碼分類為「弱」、「還好」、「好」或「強」。

向用戶提供回饋

def feedback(password):
    if check_common_password(password):
        return "Password was found in a common list. Score: 0/7"

    strength, score = password_strength(password)

    feedback = f"Password strength: {strength} (Score: {score}/7)\n"

    if score 



此功能結合了前兩個功能,提供全面的回饋。

  • 它首先檢查密碼是否通用。如果是這樣,它會立即返回警告。
  • 如果密碼不常見,則會評估其強度。
  • 提供強度等級和分數。
  • 如果密碼較弱(分數

主機程式

password = input("Enter the password: ")
print(feedback(password))

最後一部分只是要求使用者輸入密碼,然後列印回饋。

行動計劃

Building a Password Strength Checker in Python

結論

建立強密碼是維護線上安全的重要組成部分,使用此工具,您可以輕鬆評估密碼的安全性。這個簡單的程式示範如何將基本的 Python 程式設計與網路安全原則結合來解決現實世界的問題。

隨意嘗試程式碼並添加更多功能。

快樂編碼,保持安全!

版本聲明 本文轉載於:https://dev.to/immah/building-a-password-strength-checker-in-python-47om?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3