パスワード生成
4〜128文字のランダムなパスワードを生成します。英大文字・英小文字・数字・記号を選べ、紛らわしい文字(0O1lI)の除外や、各文字種を最低1文字含める指定もできます。エントロピーのビット数も表示します。
読み込み中…
使い方と仕様
乱数はブラウザの crypto.getRandomValues から取っています。文字を選ぶときは、乱数を文字数で割った余りを使う方法(剰余)だと、割り切れない分だけ前のほうの文字が出やすくなります(モジュロバイアス)。このツールは、偏りが出る範囲の乱数を捨てて引き直す棄却サンプリングで、すべての文字が同じ確率で選ばれるようにしています。
「各文字種を最低1文字含める」をオンにすると、選んだ文字種から1文字ずつ先に取り、残りを全体から選んでから並べ替えます。サービス側の「大文字と数字を含むこと」といった条件を満たしたいときに使います。長さは、選んだ文字種の数以上にしてください。
表示するビット数は「文字の候補数 ^ 長さ」から出した目安(長さ × log2 候補数)です。各文字種を必ず含める条件のぶん、実際の組み合わせ数はわずかに少なくなります。ビット数が大きくても、同じパスワードを複数のサービスで使い回せば意味がなくなります。生成した値はこのページを閉じると残らないので、パスワード管理ツールなどに保存してください。
よくある質問
- 何文字にすればいいですか?
- 決まった正解はありません。サービスが許す範囲で長いほど推測されにくくなります。パスワード管理ツールに保存する前提なら、覚える必要がないので長めにできます。記号が使えないサービスでは、記号をオフにして長さで補ってください。
- 紛らわしい文字を除くと弱くなりますか?
- 候補が減るので、同じ長さならエントロピーはわずかに下がります。除外した文字は 0 O 1 l I の5つで、下がる量は表示のビット数に反映されます。