password-generator について
カスタマイズ可能なパスワードやパスフレーズを生成する Python スキルです。暗号学的に安全な乱数を使い、強度チェックと一括出力にも対応します。
主な機能
- 01暗号学的に安全な乱数生成
- 02文字種と要件のカスタマイズ
- 03単語ベースのパスフレーズ
- 04パスワード強度チェック
- 05一括生成と CSV 出力
- 06発音しやすいパスワード生成
活用シーン
- 01長さや文字種を指定したパスワード作成
- 02覚えやすいパスフレーズの生成
- 03パスワードの推定強度チェック
- 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-ambiguous | 0、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 は使用しません)
コメント
Markdown 対応