checkpsw — ターミナル向けパスワード強度チェッカー兼ジェネレーター
概要
checkpswはターミナルで使うことを想定したパスワード強度チェッカー兼ジェネレーターです。与えたパスワードに対しスコアと「何が問題か」を分かりやすく出力し、改善方法まで案内してくれます。検出対象としては流出データベースとの照合やキーボード配列パターン、よくある数字・日付の付加、leet表記(o→0、a→4等)、文字種の偏りなど多面的なチェックを行います。コマンドラインから即座に強度診断を行えるため、開発者やセキュリティ意識の高いユーザーの手元ツールとして便利です。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 3
- ファイル数: 5
- メインの言語: Python
主な特徴
- コマンドラインでパスワードを評価し、スコアと人間向けの改善アドバイスを表示
- 流出パスワードデータベースや辞書的な弱パターンに対する照合(READMEに記載)
- キーボードパターン、日付トリック、leet変換など複数の脆弱性パターンを検出
- 暗号学的に安全なパスワードをオンデマンドで生成
技術的なポイント
checkpswはPython製の小さなツールで、主要実装はcheckpsw_2.pyにまとまっている構成が見て取れます。pyproject.tomlとsetup.pyが含まれているため、パッケージ化・配布を念頭に置いた設計であり、エントリポイントを登録してコマンドラインからcheckpswとして呼び出せることが想定されます。
解析ロジックは複数のルールベース検出器から構成されるのが一般的で、本ツールも以下のような観点で評価している点がREADMEから読み取れます。
- 長さ評価(短すぎる/長いが容易に推測されるなど)
- 文字種の多様性(大文字・小文字・数字・記号の混在度)
- キーボードパターン(隣接キーの連続: qwerty等)
- 日付/年号の付加(1988、1990等の末尾付与)
- leetや典型的な置換によるバイパス試行の検出(e→3、a→4等)
- 流出データベース照合(READMEに「checks your passwords against breach databases」とあるため、ローカル辞書や外部APIを用いた照合処理が含まれている可能性が高い)
パスワード生成は「cryptographically secure」と明記されており、Python標準のsecretsモジュールやos.urandomを利用した実装であることが想定されます。これにより、ランダム性と予測困難性が担保されます。スコアリングは10点満点のような簡潔な数値と、視覚的なゲージ(例: TERRIBLEなどのラベル)で結果を示すため、ユーザーが直感的に理解できます。
パッケージの小規模さ(ファイル数5、コミット数が少ない)から、依存関係は軽量でセルフコンテインドな実装である可能性が高く、導入・運用が容易です。一方で、リアルタイムの流出データベース参照や大規模辞書照合を行う場合は、ネットワーク接続や大きなデータファイルが必要になり得るため、実運用ではプライバシーやAPI利用制限(レート制限)に注意が必要です。
開発観点では、拡張ポイントが明確で、ルールの追加やカスタム辞書の導入、出力フォーマット(JSON等)対応、CIでのテスト追加などを容易に行える設計に見えます。パッケージ化が行われているため、pip経由のインストールや、システムのPATHに置いての日常利用も想定しやすいです。
プロジェクトの構成
主要なファイルとディレクトリ:
- LICENSE: file
- README.md: file
- checkpsw_2.py: file
- pyproject.toml: file
- setup.py: file
まとめ
軽量で即戦力になるターミナル向けパスワード診断ツール。導入が簡単で日常的なチェックに向く。
リポジトリ情報:
- 名前: checkpsw
- 説明: terminal password strength checker & generator — detects common passwords, leet speak, keyboard patterns, date tricks, and more. also generates secure passwords on demand.
- スター数: 1
- 言語: Python
- URL: https://github.com/m4gester/checkpsw
- オーナー: m4gester
- アバター: https://avatars.githubusercontent.com/u/263556198?v=4
READMEの抜粋:
checkpsw
terminal password strength checker and generator. checks your passwords against breach databases, keyboard patterns, leet speak tricks, date patterns, character diversity, and more — then tells you exactly what’s wrong and how to fix it.
also generates cryptographically secure passwords on demand.
demo
$ checkpsw "jessica1998"
password: jessica1998
strength: ░░░░░░░░░░ TERRIBLE
score: 0/10
problems:
✗ 11 chars is okay but not great
✗ it's basically "...