LoginSignup
4
2

More than 3 years have passed since last update.

パスワードの簡単な生成方法

Posted at

次のコマンドで、比較的多くの環境でさまざまな目的に利用可能な長さ32のパスワードを生成することができます。

base64 /dev/urandom | tr -d -c '[:alnum:]' | head -c 32

特徴

  • 32文字のランダムな文字列を生成します。
    • 生成する文字列長は最後の -c 32 で指定しています。もっと長い文字列が必要な場合、これを増やしてください。
  • 生成されるパスワードはアルファベットと数字のみで構成されているので、多くの用途に簡単に利用できます。
    • 62文字種で32桁あると、記号を含めた93文字種で29桁と同等かそれ以上の情報量があります。
  • /dev/urandom を使っているので、暗号学的に安全な乱数をもとにしたパスワードが生成されます。
    • 「でも urandom は PRNG だよね?」と気になる人は代わりに /dev/random を使ってください(環境によっては /dev/random も PRNG の場合があります)。
  • 利用コマンドは coreutils 付属のコマンドのみなので、幅広い環境で利用できます。

他の選択肢

この方法以外では、次のような選択肢があります。

  • base64 /dev/urandom の代わりに openssl rand -base64 を使う1。 openssl も多くの環境でデフォルトで使えるコマンドです。
  • apg を使う2。文字列長や利用文字クラスを細かく指定できます。「発音しやすいパスワード」なども生成可能。
    • homebrew をはじめ、各種OS環境のパッケージマネージャによりインストールが可能ですが、現在はあまりメンテされていないようです。
  • pwgen を使う3。使ったことがありませんが、現代的には apg よりもこちらのほうがメジャーなようです。
  • 各種プログラミング言語でプログラムを書く
    • /dev/urandom からランダムなバイト列を取り出し、それを好みの文字集合に一様にマップしてやればOKです。
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2