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

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

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

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

そんな時は、Pythonでパスワードを生成しましょう。数行のコードで簡単に生成できます。今後、製品やサービスごとに複雑なパスワードを設定する時に、是非参考にしてください。

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

Pythonなら以下の簡単なコードで複雑なパスワードを生成できます。ただし、セキュリティ向けの強い乱数を生成できるsecretsモジュールを用いるので、Python3.6以上を利用してください。randomモジュールでも乱数を生成できますが、あくまでもシミュレーション向けの擬似乱数です。

# pass_gen.py
import string
import secrets

def pass_gen(size=12):
   chars = string.ascii_uppercase + string.ascii_lowercase + string.digits
   # 記号を含める場合
   # chars += '%&$#()'

   return ''.join(secrets.choice(chars) for x in range(size))

print(pass_gen(10))

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

Google Colaboratory で実行してみる

今回は、話題のGoogle Colaboratory で実行してみます。Google Colaboratoryは、Jupyter NotebookのGoogle強化版です。すごいのが、GPUまで使えて無料です。本来は機械学習向きですが、ついでに使ってみました(そのままPython3.6が動きます)。

自分のマシンにインストールしてなくても、Googleアカウントでログインすればブラウザを使って実行できるので、かなり便利です。使い方は、以下のページを参考にしてください。

機械学習やデータ分析を学ぶには、まずは参考書から始めるのが一般的です。そして、学習を始めるために、自分のパソコンに環境を構築します。そこで、多くの書籍ではAnacondaのインストールを薦めています。…

参考:コマンドや製品を使ってパスワードを生成する方法

MacやLinuxにはパスワードを生成する便利なツールが結構あるので、それらを利用することもできます。しかし、Windowsとなると探すのに苦労しますので、いくつか分かっている方法を参考までに挙げておきます。

PowerShellを利用する方法

Windowsでpowershellを使用しランダムなパスワードを生成する(Hatena Blog)

Generate a random and complex passwords(Microsoft TechNet)

製品・サービスを利用する方法

以下の製品には、パスワード生成機能があります。

Kaspersky Password Manager

トレンドマイクロ パスワードマネージャー