GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでパスワードを作成するためのワンライナー?

「読みやすい」とはどういう意味かによって異なります。 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 など) に含まれています。


Linux
  1. LinuxRPMパッケージを作成する方法

  2. LinuxでSystemdサービスを作成する方法

  3. Linuxでスワップファイルを作成する方法

  1. Linuxコマンドラインでパスワードを生成する

  2. Linuxスワップファイルを作成する

  3. その中にディレクトリとファイルを作成するための1つのコマンドlinuxコマンド

  1. Linuxコマンドのスクリプトを作成する方法

  2. Linuxでスワップを作成する方法

  3. ジャンブルパスワード–Linuxで一意のIDとパスワードを作成する