LoginSignup
1
1
Qiita×Findy記事投稿キャンペーン 「自分のエンジニアとしてのキャリアを振り返ろう!」

【pwgin】禁止文字を指定してパスワードをランダム生成できる!pwginの使い方【JSON形式でメールを送る時便利】

Posted at

1.pwginの最大の特徴

pwginとはlinuxで使用できるパスワード生成コマンドです。

パスワードを生成するコマンドなら
・mkpwd
・pwmake
がありますが、最大の特徴として禁止文字を指定できるところにあります。

json形式(aws ses cliのsendEmailなど)でパスワード添付メールを送る際などに便利でしょう。

下記から使い方を紹介していきます。

2.pwginをlinuxにインストール

まずepelをインストールする必要があります。
下記のコマンドでインストールできます。

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

次に以下のコマンドでpgwinをインストールします。

sudo yum install pwgen –y

これでpgwinが使用できます。

3.基本の書式

基本は以下のように使用します。

pwgen [数字1] [数字2]

数字1にはパスワードの文字数を指定します。
数字2には生成するパスワードの数を指定します。

例えばこんな感じに指定してコマンドを叩くと

pwgen 9 4

9文字のパスワードが4個生成されます。

▼結果

hoafan4-^ arAfsf112 Hs920s12" Gwd83ka1s

4.禁止文字の指定方法

いよいよタイトルにある禁止文字の指定方法について説明します。

禁止文字の指定にはオプションでrを使用します。
以下のように記述してください。

pwgen -r='禁止文字' 9 4

例1

「8」を禁止文字として9文字のパスワードを4つ生成したい時

pwgen -r='8' 9 4

▼結果

fYsnf23;s geDe3va7f2 Bd90643sf haDer)tc1

禁止文字を複数指定することもできます。その場合はシングルクォートのなかに禁止文字を複数いれてください。

例2

「8」と「/」と「a」を禁止文字として9文字のパスワードを4つ生成したい時

pwgen -r='8/a' 9 4

5.使用例

JSON形式でパスワードを送付する際に役立ちます。
JSON形式では以下の文字がメール文に含まれていると送信できません。
・”(ダブルクォート)
・¥(バックスラッシュ)
・/(スラッシュ)

そのため、json方式を用いて、上記の文字が含まれたパスワードを添付したメールを送信ができません。

そこでpgwinです!

以下の正規表現でパスワードを生成しましょう。

pwgen -r='"¥/' 9 1

これで生成されるパスワードに”(ダブルクォート),¥(バックスラッシュ),/(スラッシュ)が含まれません。
メールが送信できます!

5.ほかのオプション

pwginにはrだけでなく他のオプションもあります。

           
オプション
名前 説明
-c 少なくとも一つの大文字を含める
-A 大文字を含めない
-n 少なくとも1つの数字を含める
-0 数字を含めない
-1 生成されたパスワードを一行に一つ表示する
-y 少なくとも一つの記号を含めて生成する
-s ランダム性の高いパスワードを生成する
-B あいまいな文字列をふくめない(1とi,0とoなど)
-v 母音や母音と間違う文字を含まない
-N 数字のパスワードを表示する

pwginは覚えやすいパスワードを生成するのでsオプションをつけて生成することをお勧めします。
さらに

pwgin -sync 12 1

とオプションを設定したらセキュアなパスワードが生成できると思います。

みなさんもぜひpwginを使用してみてくださいね。

1
1
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
1
1