パスワード生成

4〜128文字のランダムなパスワードを生成します。英大文字・英小文字・数字・記号を選べ、紛らわしい文字(0O1lI)の除外や、各文字種を最低1文字含める指定もできます。エントロピーのビット数も表示します。

読み込み中…

使い方と仕様

乱数はブラウザの crypto.getRandomValues から取っています。文字を選ぶときは、乱数を文字数で割った余りを使う方法(剰余)だと、割り切れない分だけ前のほうの文字が出やすくなります(モジュロバイアス)。このツールは、偏りが出る範囲の乱数を捨てて引き直す棄却サンプリングで、すべての文字が同じ確率で選ばれるようにしています。

「各文字種を最低1文字含める」をオンにすると、選んだ文字種から1文字ずつ先に取り、残りを全体から選んでから並べ替えます。サービス側の「大文字と数字を含むこと」といった条件を満たしたいときに使います。長さは、選んだ文字種の数以上にしてください。

表示するビット数は「文字の候補数 ^ 長さ」から出した目安(長さ × log2 候補数)です。各文字種を必ず含める条件のぶん、実際の組み合わせ数はわずかに少なくなります。ビット数が大きくても、同じパスワードを複数のサービスで使い回せば意味がなくなります。生成した値はこのページを閉じると残らないので、パスワード管理ツールなどに保存してください。

よくある質問

何文字にすればいいですか?
決まった正解はありません。サービスが許す範囲で長いほど推測されにくくなります。パスワード管理ツールに保存する前提なら、覚える必要がないので長めにできます。記号が使えないサービスでは、記号をオフにして長さで補ってください。
紛らわしい文字を除くと弱くなりますか?
候補が減るので、同じ長さならエントロピーはわずかに下がります。除外した文字は 0 O 1 l I の5つで、下がる量は表示のビット数に反映されます。

関連ツール