パスワード生成
文字種と桁数を選ぶだけで、暗号学的に安全な乱数を使ったパスワードを即時に生成します。強度 (エントロピー) も表示し、処理はブラウザ内だけで完結します。
使い方
- スライダーで文字数 (8〜64 文字) を選びます。長いほど強いパスワードになります。
- 使いたい文字種 (大文字・小文字・数字・記号) をチェックボックスで選びます。サービスによっては記号が使えない場合があるので、その場合は記号のチェックを外してください。
- 「見分けにくい文字を除外する」にチェックを入れると、
0とO、1とlとIのような手入力時に読み間違えやすい文字を候補から除きます。紙に書き写す、電話で伝えるといった場面で便利です。 - 「生成する」を押すとパスワードが表示されます。「コピーする」でクリップボードに貼り付けられます。
生成方法の根拠
このツールは JavaScript の Math.random() ではなく crypto.getRandomValues() を使って乱数を生成しています。Math.random() は再現性のある擬似乱数アルゴリズムで実装されることが多く、過去の出力列から内部状態を推測できる場合があり、パスワードのような機密性が必要な用途には適さないとされています。一方 crypto.getRandomValues() は OS が提供する暗号論的擬似乱数生成器 (CSPRNG) を利用する Web Crypto API のメソッドで、W3C の Web Cryptography API 勧告 で仕様が定義されています。
パスワードの強さの指標である「エントロピー (ビット数)」は log2(文字種の数) × 桁数 で算出され、表示している値もこの式に基づきます。たとえば大文字・小文字・数字・記号をすべて使った 16 桁 (文字種 94 種類) では約 105 bit となり、これは総当たり攻撃に対する強度のおおよその目安になります。米国国立標準技術研究所 (NIST) が策定するデジタルアイデンティティに関するガイドライン NIST Special Publication 800-63B では、パスワードは複雑な文字種の組み合わせを強制するよりも十分な長さを確保することが重要であり、サービス側は最低 8 文字以上、ユーザーが選べる場合は 64 文字以上まで許容することを推奨している、という考え方が示されています。
よくある用途
| 場面 | 推奨される設定の目安 |
|---|---|
| 一般的な Web サービスの新規登録 | 12〜16 文字、記号も含める (サービスが許可する場合) |
| 社内システムや管理者アカウント | 20 文字以上、全文字種を使用 |
| 電話や口頭で伝える必要がある場合 | 見分けにくい文字を除外し、桁数も控えめに |
| Wi-Fi のパスワード (他人が入力する可能性がある) | 記号を外し、見分けにくい文字も除外 |
生成したパスワードはこのページの中だけで作られ、サーバーには送信されません。ページを閉じると表示内容は残らないため、必要なパスワードは安全な場所 (パスワードマネージャーなど) に控えてください。