使い方
「生成方式」でランダムな文字かパスフレーズかを選びます。ランダムな文字モードでは長さ(8〜128文字)と含める文字の種類(小文字・大文字・数字・記号)を選び、記号一覧は自由に編集できます。パスフレーズモードでは単語数(3〜10個)と区切り文字、先頭を大文字にするか・末尾に数字を付けるかを選びます。「生成する」を押すと一度に最大20個まで作成でき、それぞれをコピーボタンでそのままコピーできます。
暗号学的な乱数が重要な理由
このツールはブラウザのcrypto.getRandomValuesを使ってパスワードを作ります。一般的なMath.random()は予測可能なアルゴリズム(疑似乱数生成器)で、過去の値がわかれば次の値を推測できる場合があり、セキュリティ用途には向きません。crypto.getRandomValuesはOSが提供する暗号学的に安全な乱数源を使い、各文字を選ぶときに剰余演算の偏りをなくす棄却サンプリング(rejection sampling)を使うことで、すべての文字が完全に同じ確率で選ばれるようにしています。
エントロピーとは
エントロピーは、攻撃者がすべての組み合わせを一つずつ試すと仮定したときにパスワードを言い当てるまでに必要な試行回数をビットで表した値です。ランダムな文字列のエントロピーはおおよそ「長さ × log2(文字プールの大きさ)」で計算され、パスフレーズは単語を重複なく選ぶため実際にはそれよりわずかに小さくなります(例えば256語のリストから4語を選ぶと4 × log2(256) = 32ビットに非常に近い値になりますが、少しだけ低くなります)。このツールは40ビット未満を「弱い」、40〜59ビットを「普通」、60〜79ビットを「強い」、80ビット以上を「非常に強い」と表示します。
パスフレーズ vs ランダムな文字列
ランダムな文字列は同じ長さなら文字の種類が多いほどエントロピーが高くなりますが、人が覚えるのは大変です。パスフレーズは実際の単語をつなげるので読みやすく入力しやすい一方、単語数を増やせばエントロピーをいくらでも高められます(ダイスウェア方式と同じ考え方です)。デバイスのロック解除やパスワードマネージャーのマスターパスワードのように手で入力する機会が多いものにはパスフレーズが向いており、一度保存すれば入力し直すことがほとんどないアカウントにはランダムな文字列が向いています。
パスワードを使い回さない
あるサイトでパスワードが漏れると、同じパスワードを使っている他のすべてのアカウントも危険にさらされます(クレデンシャルスタッフィング)。サイトごとにこのツールで新しく作った別々のパスワードを使い、1PasswordやBitwardenのようなパスワードマネージャーに保存しておけば、毎回覚え直さなくても安全に管理できます。特に重要なアカウントには可能な限り二要素認証(OTP、セキュリティキーなど)も併用してください。
プライバシーについて
生成されたパスワードや入力した文字・単語はすべてこのブラウザの中だけで計算され、どこにも送信されません。サーバーには保存されず、ページを再読み込みしたり閉じたりすると消えます。