パスワードの自動生成と禁止文字の指定

メールアカウントを新規に作成するとき、パスワードも用意する。パスワードの通知は手書きで渡すこともあるが、文字によって見間違いが発生しやすい。

そこで、間違いやすい文字を使わないパスワードを生成するスクリプトを作成する。ただし、セキュリティの低下にもつながる(鍵空間の縮小)ので、程々に。

パスワードの決定部分のみを以下に抜粋する。
生成されるパスワードは、英数字(記号なし"-s 0")かつ、"oO01l9quUvVwWb6B8Z2"を含まない9文字(-l 9)になる。

while password=`mkpasswd -s 0 -l 9 $UserName`
echo "$password" | grep '[oO01l9quUvVwWb6B8Z2]'
do :
done
echo $password

実行結果


# ./passgen_test.sh
kO2bWad4a
zhr7BpeG4
fLzqF8wy7

中略

Ejs56hzJs
kjL55ypNj -- 成立!
#

mkpasswdでパスワードを設定する処理が重いので出力を眺めながら気長に待つ。1パターンに1秒程度かかる。