本日も乙

ただの自己満足な備忘録。

mkpasswdコマンドでランダムな文字列を生成する

Basic認証やユーザのパスワードなどにランダムな文字列を生成したいときがあります。 そういう場合、Webサイトやプログラムから生成しても良いのですが、mkpasswdコマンドを使えば簡単に生成生成できます。 今回はmkpasswdコマンドをインストールしてランダムな文字列を生成してみます。

今回の目標

  • mkpasswdコマンドでランダムな文字列を生成する

サーバ環境

yumでexpectをインストール

mkpasswdコマンドを使うには、yumでexpectをインストールします。

$ sudo yum install expect

$ which mkpasswd
/usr/bin/mkpasswd

mkpasswdコマンドの使い方

manコマンドで詳細を見てほしいのですが、簡単な使い方(オプション)を紹介します。

[plain] -l ・・・ 生成するパスワードの文字数を指定する(デフォルト:9文字) -d ・・・ パスワードに含める数字の最低文字数を指定(デフォルト:2文字) -c ・・・ パスワードに含める小文字の最低文字数を指定(デフォルト:2文字) -C ・・・ パスワードに含める大文字の最低文字数を指定する(デフォルト:2文字) -s ・・・ パスワードに含める特殊文字の最低文字数を指定する(デフォルト:1文字) -2 ・・・ 右手と左手の両方を使わないと行けないような文字を指定する。セキュリティ向上が見込める。 [/plain]

# デフォルト値でランダムな文字列を生成
$ mkpasswd
4qoGJp!7k

# 15文字の文字列を生成
$ mkpasswd -l 15
giyA!kxwZtgs52f

# 15文字で数字が最低3文字、大文字が最低5文字入っている文字列を生成
$ mkpasswd -l 15 -d 3 -C 5
UQYugu2D6L.jb8q

-2オプションについて

簡単な例

# 小文字3文字のみのランダムな文字列を生成
# 左手か右手のみで打ち込める文字列になることがある
# mkpasswd -l 3 -d 0 -C 0 -s 0
iun

# -2オプションを付けることで両手でしか打ち込めない文字列を生成することができる
$ mkpasswd -l 3 -d 0 -C 0 -s 0 -2
aib

最後に

mkpasswdでランダムな文字列を生成することができました。 ユーザのパスワードなどに使えると思いますのでぜひ活用してみてください。

参考URL