「読みやすい」とはどういう意味かによって異なります。 16 進文字のみを使用する場合、128 ビットのエントロピーに到達するには 32 文字が必要になります。この行は機能します (coreutils
のコマンドのみを使用) パッケージ):
head -c16 /dev/urandom | md5sum
この亜種は、'a' から 'p' までの小文字のみのパスワードを生成します (これは、スマートフォンでパスワードを「入力」する必要がある場合に必要となるものです):
head -c16 /dev/urandom | md5sum | tr 0-9 g-p
入力する文字数を 1 つ減らしたい場合は、これを試してください:
head -16 /dev/urandom | md5sum
(最初の 16 ランダム バイトすべてを 0x0A、つまり「改行」文字として取得する確率は 2 であるため、この行は 128 ビットのエントロピーを取得します。)
まだ coreutils
からのコマンドに制限されています 、これを行うことができます:
mktemp -u XXXXXXXXXXXXXXXXXXXXXX
これは /dev/urandom
を使用して 22 文字のパスワードを生成します 乱数の内部ソースとして (ソースコードをチェックインし、 strace
コール確認)。文字は英字 (大文字と小文字) と数字です。 62 は 2 より大きいため、22 文字で十分です。
さらにもう 1 つ:
od -An -x /dev/urandom | head -1
これは、4 桁の 16 進数の 8 つのシーケンスを表示します。間違いなく、この小さなシーケンスへの分割は読みやすいかもしれません.
はるかに長い行と非常に独特な種類のパスワードについては、これを試してください:
for i in {1..8} ; do head -$(expr $(head -c7 /dev/urandom | od -An -t dL) % $(wc -l < /usr/share/dict/british-english)) /usr/share/dict/british-english | tail -1 ; done
(これは 64 ビットのホストでのみ動作します。なぜでしょうか?)。 coreutils
以外 、そのバージョンには辞書ファイルも必要です。ここでは英国英語用のファイルです。
他の回答のいくつかの素晴らしい提案。 makepasswd はどこでも利用できるわけではなく、tr を使用するのは (少し) 難しいので、OpenSSL を使用する別のオプションがあります:
openssl rand -base64 16
数値は乱数のバイト数です。つまり、128 ビットのエントロピーに対して 16 バイトです。
pwgen の使用
これまでで最もシンプルなワンライナー:
pwgen
覚えやすいパスワードを作成しようとします。これを無効にしてより安全なパスワードを作成するには、--secure
を使用します または -s
pwgen -s
生成されたパスワードが長すぎませんか?短すぎる?必要な長さを追加するだけです:
pwgen 9
# Or
pwgen -s 9
# Or
pwgen 9 -s
類似ツール
たまたま pwgen を知っているだけで、他にもツールがあります。ディストリビューションから検索機能を使用してそれらを見つけることができます。 Debian では:
apt-cache search password generator
正確な (大文字と小文字を区別しない) 検索を行います。 password generat
の使用
パッケージをインストールする前に、その説明を表示すると便利です。再び Debian で:
apt-cache show $DESIRED_PACKAGE
# E.g.
apt-cache show pwgen
この方法で見つけたツール:
pwgen
makepasswd
apg
otp
(1 回限りのパッド用であり、推奨されません)gpw
(発音に重点を置いているため、お勧めしません)
標準の Unix ツールの使用
すべてのシステムで pwgen が利用できるわけではありません。他の人が答えたように、 md5sum
を使用できます または sha256sum
、しかしそれは0-9とa-fのみを出力します。特殊文字はもちろん、g-z や大/小文字混合は使用できません。 /dev/urandom
から印刷できない文字を単純に除外することをお勧めします。 必要な長さのパスワードが得られるまで:
cat /dev/urandom | tr -cd '@-~' | head -c 8
XiVsdn[y
のようなものが得られます または [email protected]^lY
. 8
を変更できます 必要なパスワードの長さの最後に。 @-~
を変更することもできます 文字を制限する部分。たとえば、これは英数字のみを出力します:
cat /dev/urandom | tr -cd 'a-zA-Z0-9' | head -c 8
これは pwgen -s
とほとんど同じです nZiUzNtE
のようなパスワードを指定します .
おまけとして、tr
ツールは、Microsoft Windows を除くほぼすべてのオペレーティング システム (Mac OS X、GNU/Linux、Android/Linux、Solaris、FreeBSD など) に含まれています。