パスワード生成ツール
このツールについて
使い方
- 文字数をスライダーまたは数値入力で設定します (4〜64文字)
- 使用する文字種 (大文字・小文字・数字・記号) を選択します
- 「生成」ボタンでパスワードを生成し、コピーできます
セキュリティについて
このツールは暗号論的に安全な乱数生成器 (crypto.getRandomValues) を使用しており、予測困難なパスワードを生成します。生成処理はすべてブラウザ内で完結し、サーバーへの送信は行いません。
よくある質問
- Q. 何文字くらいのパスワードが安全ですか?
- A. 大文字・小文字・数字を含めて 12 文字以上、より強固にしたい場合は 16 文字以上が目安です。長いほど総当たり攻撃に強くなるため、サービス側の上限を確認しつつ可能な限り長く設定してください。
- Q. 生成したパスワードは履歴として残りますか?
- A. 残りません。ページを離れたりリロードした時点でメモリから消去され、サーバーやブラウザのストレージにも保存されません。必要なパスワードは生成直後にコピーしてご利用ください。
- Q. 記号を含めると拒否されるサービスがあるのですが?
- A. サービスによって使える記号が異なります。記号セクションでは「全選択」のほかにグループ別 (基本記号、括弧類など) で個別に切り替えられるため、対象サービスの仕様に合わせて調整してください。
- Q. 同じ条件で生成しても毎回違うパスワードになりますか?
- A. はい。
crypto.getRandomValuesによる暗号論的乱数を毎回生成するため、文字種・長さが同じでも結果は毎回異なります。同じ条件で再生成したい場合は「再生成」ボタンを押してください。 - Q.
Math.random()ではなくcrypto.getRandomValuesを使う理由は? - A.
Math.random()は擬似乱数で予測される可能性があるため、パスワード生成には不適切です。crypto.getRandomValuesは OS のエントロピーソースを利用した暗号論的乱数で、予測困難な値を返します。
豆知識
安全なパスワードの条件
セキュリティ研究者や NIST (米国国立標準技術研究所) のガイドラインでは、 パスワードの「長さ」が最も重要な要素とされています。 8 文字のパスワードは現在の計算能力では数時間で総当たり解読される可能性がありますが、 16 文字以上に伸ばすだけで解読に要する時間は天文学的に長くなります。
パスワードのエントロピー
パスワードの強度は「エントロピー」(ビット数) で定量的に測ることができます。 使用する文字の種類数を N、パスワードの長さを L とすると、 エントロピーは L × log2(N) ビットです。
例えば、英大文字 + 英小文字 + 数字 (62 種類) で 16 文字のパスワードを生成すると、 エントロピーは 16 × 5.95 ≒ 95 ビットとなり、 現在の技術では実質的に解読不可能なレベルです。
crypto.getRandomValues とは
このツールが使用している crypto.getRandomValues は、 Web ブラウザが提供する暗号論的疑似乱数生成器 (CSPRNG) です。 Math.random() とは異なり、OS のエントロピープール (キーボード入力やネットワークノイズなどの物理的ランダム性) を元にしているため、 生成されるパスワードの予測が極めて困難です。
パスワードマネージャーの活用
複雑なパスワードを複数のサービスで使い分けるには、パスワードマネージャーの利用が推奨されます。 このツールで生成した強力なパスワードをパスワードマネージャーに保存しておけば、 自分で覚える必要はなく、サービスごとに異なる安全なパスワードを管理できます。
参考リンク
- NIST SP 800-63B - Digital Identity Guidelines
米国NIST のパスワード推奨事項 (最低8文字、英数字記号の組合せ等)
- Web Crypto API - crypto.getRandomValues()
暗号論的に安全な乱数生成 API (本ツールも利用)
- Have I Been Pwned
パスワードが過去の漏洩データベースに含まれていないか確認できるサービス
- 不正アクセス行為の禁止等に関する法律 - 警察庁
不正アクセス禁止法の概要と安全なパスワード管理のガイド
このツールの更新履歴
パスワード生成ツールを公開
暗号論的に安全なランダムパスワードを生成します。