mcpField
P
password-generator

password-generator

github.com/dkyazzentwatwaセキュリティ12455 回インストール29 週間前に更新
リポジトリ

password-generator について

カスタマイズ可能なパスワードやパスフレーズを生成する Python スキルです。暗号学的に安全な乱数を使い、強度チェックと一括出力にも対応します。

主な機能

  1. 01暗号学的に安全な乱数生成
  2. 02文字種と要件のカスタマイズ
  3. 03単語ベースのパスフレーズ
  4. 04パスワード強度チェック
  5. 05一括生成と CSV 出力
  6. 06発音しやすいパスワード生成

活用シーン

  1. 01長さや文字種を指定したパスワード作成
  2. 02覚えやすいパスフレーズの生成
  3. 03パスワードの推定強度チェック
  4. 04チーム向けパスワードの一括準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill password-generator

インストール後、Claude Code で/password-generatorを入力して読み込まれたか確認します。

同梱ファイルscripts/password_gen.pyscripts/requirements.txt

詳細

パスワードジェネレーター

暗号学的に安全なパスワードと覚えやすいパスフレーズを生成します。文字セット、長さ、ルールをカスタマイズできます。強度チェックと一括生成にも対応しています。

クイックスタート

from scripts.password_gen import PasswordGenerator

# Generate password
gen = PasswordGenerator()
password = gen.generate(length=16)
print(password)  # "K#9mPx$vL2nQ@8wR"

# Generate passphrase
passphrase = gen.passphrase(words=4)
print(passphrase)  # "correct-horse-battery-staple"

機能

  • 安全な生成:暗号学的に安全な乱数を使用します
  • カスタムルール:文字セット、必須の文字種、除外文字を設定できます
  • パスフレーズ:単語ベースの覚えやすいパスワードを生成します
  • 強度チェック:パスワードの強度を評価します
  • 一括生成:複数のパスワードを生成します
  • 発音しやすいパスワード:入力しやすいパスワードを生成します

API リファレンス

基本的な生成
gen = PasswordGenerator()

# Default (16 chars, mixed)
password = gen.generate()

# Custom length
password = gen.generate(length=24)
文字オプション
# Include/exclude character types
password = gen.generate(
    length=16,
    uppercase=True,
    lowercase=True,
    digits=True,
    symbols=True
)

# Exclude ambiguous characters (0, O, l, 1, etc.)
password = gen.generate(length=16, exclude_ambiguous=True)

# Custom character set
password = gen.generate(length=16, charset="abc123!@#")

# Exclude specific characters
password = gen.generate(length=16, exclude="{}[]")
要件
# Require at least N of each type
password = gen.generate(
    length=16,
    min_uppercase=2,
    min_lowercase=2,
    min_digits=2,
    min_symbols=2
)
パスフレーズ
# Word-based passphrase
passphrase = gen.passphrase(words=4)
# "correct-horse-battery-staple"

# Custom separator
passphrase = gen.passphrase(words=4, separator="_")
# "correct_horse_battery_staple"

# With number
passphrase = gen.passphrase(words=3, include_number=True)
# "correct-horse-42-battery"

# Capitalize words
passphrase = gen.passphrase(words=4, capitalize=True)
# "Correct-Horse-Battery-Staple"
強度チェック
strength = gen.check_strength("MyP@ssw0rd!")
# {
#     'score': 3,           # 0-4 scale
#     'label': 'Strong',    # Weak, Fair, Good, Strong, Very Strong
#     'entropy': 65.2,      # Bits of entropy
#     'feedback': ['Good length', 'Has symbols']
# }
一括生成
# Generate multiple passwords
passwords = gen.generate_bulk(count=10, length=16)

# To CSV
gen.generate_to_csv("passwords.csv", count=100, length=20)

CLI の使用方法

# Generate single password
python password_gen.py --length 16

# Generate passphrase
python password_gen.py --passphrase --words 4

# Custom options
python password_gen.py --length 20 --no-symbols --exclude-ambiguous

# Bulk generate
python password_gen.py --count 10 --length 16

# Check strength
python password_gen.py --check "MyPassword123!"

# Generate to file
python password_gen.py --count 100 --output passwords.txt
CLI 引数
引数説明デフォルト
--lengthパスワードの長さ16
--count生成する数1
--passphraseパスフレーズを生成False
--wordsパスフレーズに含める単語数4
--no-uppercase大文字を除外False
--no-lowercase小文字を除外False
--no-digits数字を除外False
--no-symbols記号を除外False
--exclude-ambiguous0、O、l、1 を除外False
--checkパスワードの強度をチェック-
--output出力ファイル-

例

強力なランダムパスワード
gen = PasswordGenerator()
password = gen.generate(
    length=20,
    min_uppercase=2,
    min_lowercase=2,
    min_digits=2,
    min_symbols=2
)
print(f"Password: {password}")
print(f"Strength: {gen.check_strength(password)['label']}")
覚えやすいパスフレーズ
gen = PasswordGenerator()
passphrase = gen.passphrase(
    words=4,
    capitalize=True,
    include_number=True,
    separator="-"
)
print(passphrase)
# "Tiger-Mountain-42-Sunset-Lake"
PIN の生成
gen = PasswordGenerator()
pin = gen.generate(
    length=6,
    uppercase=False,
    lowercase=False,
    digits=True,
    symbols=False
)
print(f"PIN: {pin}")  # "847291"
チーム向けの一括生成
gen = PasswordGenerator()

# Generate passwords for new team members
team = ["alice", "bob", "charlie"]
for member in team:
    password = gen.generate(length=16)
    print(f"{member}: {password}")

強度スコア

スコアラベル説明
0非常に弱い< 28 ビットのエントロピー
1弱い28~35 ビット
2普通36~59 ビット
3強い60~127 ビット
4非常に強い128 ビット以上

依存関係

(No external dependencies - uses Python standard library)

セキュリティに関する注意事項

  • 暗号学的に安全な乱数の生成に secrets モジュールを使用します
  • 生成したパスワードをログに記録したり、保存したりすることはありません
  • パスフレーズの単語リストは埋め込み式です(外部への呼び出しはありません)
  • 強度チェックはローカルで行います(外部 API は使用しません)

コメント