「読みやすい」とはどういう意味かによって異なります。 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
この方法で見つけたツール:
pwgenmakepasswdapgotp(1 回限りのパッド用であり、推奨されません)gpw(発音に重点を置いているため、お勧めしません)
標準の Unix ツールの使用
すべてのシステムで pwgen が利用できるわけではありません。他の人が答えたように、 md5sum を使用できます または sha256sum 、しかしそれは0-9とa-fのみを出力します。特殊文字はもちろん、g-z や大/小文字混合は使用できません。 /dev/urandom から印刷できない文字を単純に除外することをお勧めします。 必要な長さのパスワードが得られるまで:
cat /dev/urandom | tr -cd '@-~' | head -c 8
XiVsdn[y のようなものが得られます または example@unixlinux.online^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 など) に含まれています。