総務省がパスワードの定期的な変更は不要であると方針転換したことが話題になっています。

設定と管理のあり方|IDとパスワード|どんな危険があるの?|基礎知識|国民のための情報セキュリティサイト(総務省)

むしろ、使い回しが危険であり、機器やサービスごとに固有のパスワードを設定することが求められます。つまり、複雑なパスワードを最初だけ設定することになります。

では、複雑なパスワードはどうやって作成するのでしょうか。

自分でランダムに文字を組み合わせることもできますが、人によってはパターン化しやすく、ディープラーニグの格好の題材になってしまいそうです。できれば、機械で無作為に作成したいです。

そんな時は、Pythonでパスワードを生成しましょう。数行のコードで簡単に生成できます。今後、サービスなどで複雑なパスワードが必要になった時に、是非参考にしてください。

本ページのPython実行環境について

  • ブラウザでPythonを実行できるPyodide 0.25.0(Python 3.11.3)を利用しています。
  • 本ページのコードを試行する用途のみにご利用ください(input()など本ページで使用していない機能には動作しないものがあります)。

Pythonでパスワードを生成する方法

Pythonなら以下の簡単なコードで複雑なパスワードを生成できます。以下の実行ボタンを押すと試すことができます。

なお、このコードを自分のパソコンで実行するときは、セキュリティ向けの強い乱数を生成できるsecretsモジュールを用いているので、Python3.6以上を利用してください。randomモジュールでも乱数を生成できますが、あくまでもシミュレーション向けの擬似乱数です。

コードクリア
実行結果クリア

上記の例では、10文字のパスワードを生成するので、pass_gen(10)のように呼び出しています。記号を含めたい場合は、適宜chars変数に記号を追加してください。

生成したパスワードを管理するには

パスワードは複数のサービスで使い回さないことが鉄則です。しかし、利用するサービスが増えると何かに記録しておかないと管理が難しくなります。そこで、以下のようなツールがあると便利です。

デジタルで管理

以下のようなデジタルツールやサービスでは、マスターパスワードで複数のパスワードを一元管理できます(パスワードマネージャーは生体認証にも対応しています)。その他にもパスワード管理に便利な様々な機能が付いています。

アナログ(ノート)で管理

根強い支持があるのが「ノート」による管理です。以下のような専用のノートも販売されています。アナログの方が安心という意見も多いですが、くれぐれも保管は厳重にする必要があります。