LoginSignup
0
0

文字種を指定したパスワードの生成

Last updated at Posted at 2019-03-08

はじめに

Linux環境では、mkpasswdコマンドを使ってパスワードを生成する方が多いと思います。
総務省が「定期的にパスワードを変更すべき」という方針を撤回したというのは記憶に新しいですが、なんだかんだでパスワード変更が必要になるシーンはまだまだ多いと思います。

また、単にパスワードを自動生成しても「大文字のローマ字が含まれていないとルール上NG」「パスワードに記号が入っていると入力しづらい」といったことが起きるため、文字種を指定したパスワードの生成ができるととても便利です。

そこで、mkpasswdコマンドのパラメーターを使って、パスワードの文字種を自由に指定する方法を少し紹介したいと思います。

事前準備

  • mkpasswdコマンドを使うには、expectというパッケージのインストールが必要になります。
  • CentOSの場合、インストールタイプをBASICに指定するとmkpasswdコマンドを手動でインストールする必要があります。
[root@akagi ~]# yum install expect -y

mkpasswdコマンドの概要

  • パラメーター無しでmkpasswdだけ入力して実行すると、ランダムなパスワードが返されます。
  • 英数字と記号が混ざった「9文字のパスワード」となります。
  • オプションを指定することで、パスワードの長さや含まれる文字の種類を自在にコントロールすることが可能です。
オプション 説明
-l {数値} パスワードの文字数
-d {数値} パスワードの含まれる数字の個数(最低数)
-c {数値} パスワードに含まれる小文字のローマ字の個数(最低数)
-C {数値} パスワードに含まれる大文字のローマ字の個数(最低数)
-s {数値} パスワードに含まれる記号の個数(最低数)

パスワードの生成の一例

  • 上記のパラメーターの説明を見ると分かりますが、数字や小文字のローマ字などは「最低数」を指定するようになっています。
  • これを逆手にとると、「パスワードに含まれる文字種」を自由にコントロールすることができます。
  • 例えば「パスワードの文字数が8文字」の時、以下のように設定すると「"最低の文字数"を足しただけでパスワードの文字数が飽和する」ため、結果的に大文字のローマ字と記号が入らないパスワードを作ることができます。
  • 数値:最低4文字
  • 小文字のローマ字:最低4文字
  • 大文字のローマ字:最低0文字
  • 記号:最低0文字

数字のみのパスワードを作る場合

  • 文字数=数字の数とした上で、ローマ字や記号の文字数を全て0文字とします。
[root@akagi ~]# # 数字のみから成る、8文字のパスワードを生成する。
[root@akagi ~]# mkpasswd -l 8 -d 8 -c 0 -C 0 -s 0
07752792

ローマ字と数字のみのパスワードを作る場合

  • 文字数={数字の数+ローマ字の数}とした上で、記号の文字数を0文字とします。
[root@akagi ~]# # 小文字のローマ字4文字と数字4文字から成る、8文字のパスワードを生成する。
[root@akagi ~]# mkpasswd -l 8 -d 4 -c 4 -C 0 -s 0
8ykwi972

[root@akagi ~]# # ローマ字4文字(大文字:1、小文字:3)と数字4文字から成る、8文字のパスワードを生成する。
[root@akagi ~]# mkpasswd -l 8 -d 4 -c 3 -C 1 -s 0
25hi1Iv0

記号も含むパスワードを作る場合

  • 数字/ローマ字/記号が混ざったパスワードを作りたいだけなら、文字数さえ指定すればOKです。
  • 数字/ローマ字/記号の文字数を指定したい時は、文字数={数字の数+ローマ字の数+記号の数}とすれば、パスワード中に含まれる文字の配分を自由に指定することが出来ます。
[root@akagi ~]# # 数字4文字と小文字のローマ字4文字、記号1文字から成る、9文字のパスワードを生成する。
[root@akagi ~]# mkpasswd -l 9 -d 4 -c 4 -C 0 -s 1
@bi4ag510
0
0
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
0
0