「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python でパスワード強度チェッカーを構築する

Python でパスワード強度チェッカーを構築する

2024 年 11 月 1 日に公開
ブラウズ:452

こんにちは。今日のチュートリアルへようこそ。今日は、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 



この関数は、前の 2 つの関数を組み合わせて、包括的なフィードバックを提供します。

  • まずパスワードが共通かどうかをチェックします。存在する場合、すぐに警告を返します。
  • パスワードが一般的でない場合、その強度が評価されます。
  • 強さの評価とスコアを提供します。
  • パスワードが弱い場合 (スコア

メインプログラム

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