pwgen で、指定された文字を使ったパスワードを生成する

あるWebサービスのパスワードを変更しようとしたら、「8-20文字で、ローマ字、数字、ハイフン、アダーバー、ドットのみ利用可能」の条件があって困った。

パスワードを生成する時、いつもは pwgen で以下のように作っている。

$ pwgen -sy 20 1

意味: 完全にランダムな英数記号で20文字のパスワードを1つ生成

記号は使いたいが、使えない記号があるので困る。

pwgen は利用する文字を細かく指定できないので、以下のようにして対応する事にした。

$ pwgen -1sy 20 10000 | egrep "[a-zA-Z0-9_.-]{20}"

意味: 1行ずつ、セキュアで(完全にランダムな)、記号を含む、20文字のパスワードを 10000 個作る => その中からローマ字、数字、ハイフン、アダーバー、ドットを含むものを表示