#69

安全なパスワードの自動生成

複数の文字種を組み合わせ、推測されにくいパスワードを生成します。

解説

安全なパスワードは「長く」「複数の文字種を含む」ものです。小文字・大文字・数字・記号の4種類を必ず混ぜると、総当たり攻撃に強くなります。 このプログラムは各文字種から最低1文字を確保し、残りを全文字種から選び、最後にシャッフルして規則性をなくします。random.seed(0) を入れているので毎回同じ結果になり、動作を確認しやすくなっています(実運用ではseedを固定しません)。 文字の長さと種類が安全性をどう左右するか考えてみましょう。

書き方

import random, string で乱数と文字種の定数を使う。
・string.ascii_lowercase / ascii_uppercase / digits: 小文字・大文字・数字の文字集合。
・random.seed(0): 乱数の種を固定し毎回同じ結果に。
・random.choice(集合): 1文字をランダムに選ぶ。random.shuffle(リスト): 並びをかき混ぜる。

書いて動かす

この回の課題

小文字・大文字・数字・記号を必ず含む12文字のパスワードを生成し、シャッフルして規則性をなくしてみよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

もっと本格的に使うなら

Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。