title: パスワードジェネレータ description: ユーザーが制御できる文字セットからランダムなパスワードを生成するスクリプトを作成します。
パスワードジェネレータ
Zee セキュリティ部門がパスワード衛生についてのメモを送回してきたんだけど、私が特に指摘されちゃった。恥ずかしい。ちょっとパスワードジェネレータを作ってくれない?長さを指定して、数字と記号を含めるかどうかをはい/いいえで答えると、実際に使えるものが出力される。「password123」をすべてのアカウントで使うのは最高じゃないってことはわかってるんだけど...
何を作るのか
Password length: 12
Include numbers? (y/n): y
Include symbols? (y/n): y
Generated: k7#mP9xQ!2aL必要なもの
- 出力と入力 - ユーザーの設定を収集する
- 文字列 - 文字、文字のリストを文字列に戻す
- リスト - 許可された文字のプールを構築し、結合する
- モジュールと標準ライブラリ - 文字を選択するための
random、事前に構築された文字セット用のstring
ヒント
最初にプールを構築してください。 許可された文字の空のリストで始めます。常に文字を追加し、ユーザーが選択した内容に基づいて条件付きで数字または記号を追加します。
string モジュールで作業を節約します。 あらかじめ用意された文字列があります: string.ascii_letters、string.digits、string.punctuation。わざわざ入力する必要はありません。
選択して、結合します。 random.choice() を使用して一度に 1 文字を選択し、ユーザーが要求した長さ分繰り返し、結果を単一の文字列に結合します。
さらに先へ
基本的なジェネレータが動作したら:
- ルールを保証します。 ユーザーが数字を要求した場合、少なくとも 1 つの数字が結果に表示されることを確認します。記号についても同じです。純粋にランダムに選択すると、それらが含まれない可能性があります。
- バッチを生成します。 ユーザーが複数のパスワードを一度に要求できるようにして、すべてを表示します。
- 強度インジケータ。 生成後、簡単な評価を表示します: 弱い(文字のみ)、中程度(文字 + 数字)、強い(文字 + 数字 + 記号)。

