このパスワードジェネレーターが他と違う点
多くのオンラインジェネレーターはサーバー側でパスワードを生成(パスワードがあなたの端末を離れる)するか、暗号学的に安全でない Math.random() を使用しています。どちらも本当のセキュリティには不向きです。
- 真の乱数:
crypto.getRandomValues が暗号学的に信頼できる数値を提供し、Rejection Sampling でモジュロバイアスを排除。
- 完全オフライン:
fetch なし、サードパーティスクリプトなし、CDN なし、Cookie なし、LocalStorage なし。
- シングルファイル: HTML、CSS、JavaScript のみ。ページを保存してインターネットなしで使用可能。
- 透明性: ソースコードは可視で読みやすい(右クリック「ページのソースを表示」)。
- 保存なし: タブを閉じればパスワードは消失。履歴も痕跡もなし。
本当に安全なパスワードの選び方
最も重要なルール:長さは複雑さに勝る。 長いパスワードは、記号を多用した短いパスワードよりも数学的に安全です。
- 通常アカウントには 16 文字以上、メール、銀行、マスターパスワード、サーバーアクセスには 24〜32 文字。
- サービスごとに固有のパスワード。 1 つのサービスが侵害されても、他のアカウントは安全。
- パスワードマネージャーを使う(KeePassXC、Bitwarden、1Password など)。覚えるのは強力なマスターパスワード 1 つだけ。
- 可能な限り 二要素認証を有効化。
- 同じパスワードを再利用しない、規則的なパターンで作らない(例:
Sommer2024!)。辞書攻撃で数秒で破られます。
攻撃者が解読するのにどれくらいかかるか
オフライン攻撃(リークしたパスワードハッシュをローカルで全組み合わせ試行)では、現代の GPU リグは弱いハッシュ方式(MD5、SHA-1 など)に対し毎秒約 1 兆回試行できます。bcrypt や Argon2 のような優れた方式では大幅に少なくなりますが、ここでは保守的に計算します。
| 長さ |
文字セット |
組み合わせ数 |
解読時間(1 兆回/秒) |
| 8 | 小文字のみ | 2 · 1011 | 0.2 秒 |
| 8 | 英字 + 数字 | 2 · 1014 | 3 分 |
| 12 | 英字 + 数字 | 3 · 1021 | 100 年 |
| 16 | 英字 + 数字 | 5 · 1028 | 15 億年 |
| 20 | 英字 + 数字 | 7 · 1035 | 10²² 年 |
| 32 | 英字 + 数字(標準) | 2 · 1057 | 事実上無限 |
値は概算、62 文字(a〜z、A〜Z、0〜9)と 10¹² 回/秒を前提。