最近、よくパスワードを新規で作成することがあったので、各OS別にパスワードに使えるランダムな文字列を生成してくれるコマンドを調べてみることにした。

1.Linux

RHEL/Debian系ともにpwgenコマンドでランダムなパスワード文字列が生成可能だ。
入ってない場合は、yum/apt-getでインストールできる。

オプション無しで実行すると、8桁の英数字を大量に出力してくれる。

pwgen
[root@test-node ~]# pwgen
XeituY4O ceeT0boo Taelu0oo EiKu3aev Oog6ma0u Vaedee0u wu7ri7Ah Ithee6Zu
hai3ThiP Book4she ea2Choa0 hohz5Oor ra3Tepee aikoQu0U Aib8Peel aiW7oobi
gaeBa8qu io9Eighu ief3UaXe aihi0Fei zaeNg6ie ahKow9ze Hif5lo2j Iu7aicee
Ohghae7e eel6uuLo lei2Oewo ahoP2wei wiejeeP5 EGhi8shi aecaiN4a cieZaex2
Chak7yei Iod3wieX ia4TeiV2 Tewey9za quai9uuJ aish9ooR EipahPh0 vec3Roon
ieNga5pu aezuoc6D thirei2O seleeW5n ood9pohD lees2Sae Chei9Ahg hoh5ahXa
aiche4Ei au7Oi5so wah4uk0I IePh0Aet bieR5aeG iuquai6O sohfeiB3 ue2raiBu
aeGaeP6s io0haeC1 PhooDe6k ceiR4shi Fea8Aiwa TeiD6cha za1Lootu eiGha4wi
Maa5leeR ooCh5uno iuF6Peix aedaev6H Rah6ieY4 ooth4Bai ooz2Ohka qui6Eech
IePh0Euj ohxahR0m ooraiVi7 oh1cei2O paike6Ch ca7Thaim aiXie1wo AhCh1Ohz
mieShuy7 Ier6rae3 mie9aeX5 Muubie1c Aechait3 Eph1shoo wu8haeSh huiP5Rie
da1Jaewa ma4ugh4S xainee4B Eec7iero Aihae5ch Mooc8aem phoo8Eer Yoocoo9x
Aipeig8b eiWahb2I ahp8ReiD vie8ooPi Ohph4cuD Ac9neiTe uW1ohw0m Aepi7mee
Thohg6eo Aij0aixi xeech6UP Aht9iech cho6aiDi Ja4juoJ3 iShuqu5p Ohtei7tu
sheeKet9 yoKa6pee iG0quu5u yi5eiBus lee8keeK eiMeim6a ho2Iv3ai xuzeiR7y
Ulee2pah em3Toigh Uhi5okie Oomei1ul quieTh2A kauB1aiC Aifaeya5 evu2gi6O
xo5Zaiki yahD6pu3 raY1ne2c Kie6quoc Lah0ogh8 iMoo5iex ASh8quee ae2ey2Vo
iez4zeiF oar6ieTo Laup1Gee phuD6Cho Yoese2ea Eefe7sai ie9Eije8 iph2Shuo
pheheeT5 yae8Aiv5 Ahsil0Af Ahlooc1e cheV6ohs RahPhei0 jeYo6vef Iev0Uan6
ieKee8de AeS7sai6 eingaeN2 Aengae3U Ju5jah4u aiW9ai2d Ahfae3oo sho1Aimo

これだと少々扱いにくいので、引数や以下のようなオプションを組み合わせてパスワードを生成すると良いだろう。

pwgen パスワード桁数 出力個数
  • -y … 記号付きパスワードを生成する
  • -0 … パスワードに数字を含めない
  • -A … 大文字無しにする
  • -s … 完全にランダムな文字列を生成する

強度の高いパスワードを生成するなら、以下のようにコマンドを実行すると良いだろう。

[root@test-node ~]# pwgen 16 1 -sy
$.h8cdQ05y="BYH~
pwgen 16 1 -ys

2.MacOS X

MacOS Xでも、Linux同様pwgenコマンドが利用出来る。
利用方法は同一のため割愛する。

3.Windows

Windowsでパスワードを自動生成する場合は、どうもスマートなコマンドが無いようだ。
なのでこちらを参考に、以下のようにPowerShellで実行すると良いだろう。

Add-Type -AssemblyName System.Web;[System.Web.Security.Membership]::GeneratePassword(パスワード桁数,$specialchar)
PS C:\Users\USER> Add-Type -AssemblyName System.Web;[System.Web.Security.Membership]::GeneratePassword(8,$specialchar)
r]ln0NJA