強度チェック付きパスワードジェネレータ
30分プログラム、その127。強度チェック付きのパスワードジェネレータ。
自分で作るのは面倒というか不安だったので、apgとcracklibを使っている。
apgなのは、こいつが生成するPronounceable Password(発音可能なパスワード,英単語っぽいけど英単語じゃないパスワード)が気にいっているので。
使い方
$ mkpwd -t yephpeyWau (yeph-pey-Wau) OK idtusyaxim (id-tus-yax-im) OK konBikuf (kon-Bik-uf) it is based on a dictionary word ZygIdvaud (Zyg-Id-vaud) OK fulikWau (ful-ik-Wau) OK LegHainyud (Leg-Hain-yud) OK
また、apg元々のオプションも使える
$ mkpwd -n 2 Scabvadba OK RofNolkOk2 OK
ソースコード
ああ、cracklib-checkが標準入力からパスワードを読みとる形式じゃなかったら、もっとシンプルに書けるのに。
#!/opt/local/bin/ruby def check(passwd) `echo '#{passwd}' | cracklib-check`.split(':',2)[1].strip end `apg #{ARGV}`.each{|line| passwd,*xs = line.split print passwd,"\t",xs.join("\t"),"\t",check(passwd),"\n" }
参考
- 過去の30分プログラム
- id:mzp:20070907:followup
- apg
- cracklib