🎄 はじめに
こんにちは。普段はPythonを使って自動化やツール開発をしています。
前回の記事では、Pythonでパスワード自動生成アプリを紹介しました。
本記事はこんな人におすすめです:
- パスワード強度を自動で判定したい
- Pythonで簡単なセキュリティツールを作ってみたい
- GradioでWebアプリ化する方法を知りたい
今回はその続編として、
「パスワードの強度を100点満点でスコア化し、可視化まで行うツール」
を Python だけで作成してみました。
🎯 作るもの
今回作るツールはこんな機能を持っています👇
1. 🌟 長さ・文字種・辞書攻撃耐性を自動チェック
2. 🌟 強度スコア(0〜100点)を算出
3. 🌟 matplotlib で棒グラフとして可視化
4. 🌟 Gradio で Webアプリ化(スマホでも動く)
🔍 パスワード強度の評価基準
今回の評価項目:
| 指標 | 内容 |
|---|---|
| 長さ | 8文字未満は減点、16文字以上で高評価 |
| 文字種 | 大文字・小文字・数字・記号の種類数 |
| 辞書攻撃 | よくある弱い単語(password, qwertyなど)をチェック |
| 連続文字 | “1111” や “abcd” のようなパターンを減点 |
それぞれの基準を点数化し、合計100点満点でスコアを算出します。
🧪 まずは判定ロジックを実装
📊 スコアを棒グラフで可視化(matplotlib)
🌐 GradioでWebアプリ化(UI付き)
🔍 実行例
📊 (1)パスワード強度スコアのグラフ
これは80点のスコアの際に出力されるパスワード強度スコアのグラフです。
🔐 (2)強いパスワードの例
ここではランダムに記号、大文字、小文字、数字を組み合わせてパスワードを生成して入力してみました。80点のスコアでこれなら強いパスワードの例です。
⚠️ (3)改善の余地があるパスワードの例
Teru1024!を入力してみました。60点のスコアで改善の余地があるパスワードの例です。
🚨 (4)非常に弱いパスワードの例
password123!を入力してみました。20点のスコアで非常に弱いパスワードの例です。
🎁 まとめ:自分のパスワードを“見える化”しよう
今回紹介したツールは:
1. セキュリティ意識向上
2. 自作アプリとの連携
3. UI付きで誰でも使いやすい
など、個人利用から教育用途まで幅広く使える内容です。
🔗 ソースコード(Colab版)
📕1. 必要ライブラリのインストール
✅ 2. パスワード強度スコアロジック
📊 3. 棒グラフをPNGとして返す関数(Gradio対応)
🔑 4. Gradio UI(Webアプリ)
🎉 これで完成!
このコードをそのまま Colab に貼れば、
スコア判定・改善ポイント表示・グラフ生成・Gradio UI まで一通り動作します。
ぜひ実際に試してみてください!












