強力なランダムパスワード生成ツール
crypto.getRandomValuesを使い、ブラウザ上で強力なランダムパスワードを生成します。長さと文字種を選べ、正確なエントロピーをビット数で確認できます。
各パスワードは crypto.getRandomValues を使い、89 文字のプールから一様ランダムに生成されます。16 文字と選択したルールでは 2^103.4 通りのパスワードがあり、エントロピーは 103.4 ビットです。
パスワード生成とは?
選択した文字種(大文字、小文字、数字、記号)からランダムなパスワードを作成するツールです。すべての文字はブラウザの暗号論的に安全な乱数生成器から選ばれ、パスワードが実際に持つエントロピーのビット数がページに表示されます。
パスワード生成の使い方
- スライダーまたは数値入力で長さを設定します(4〜128)。
- 使用する文字種にチェックを入れ、必要に応じて紛らわしい文字を除外します。
- サイトで必須とされる場合は、選択した各文字種を最低 1 文字含めるをオンのままにします。
- 再生成をクリックして新しいパスワードを作り、コピーでクリップボードに送ります。
例
Length 16, uppercase + lowercase + digits + symbols, one of each set
un1f?zGz#~v4Sr2n (103.4 bits)
出力はランダムなので、毎回異なるパスワードになります。エントロピーの値は、この設定に対して正確です。
パスワード生成を使うべき場面
パスワードマネージャーに保存するアカウント、Wi-Fiネットワーク、データベースユーザー、APIの認証情報の新しいパスワードが必要なときに使えます。入力したり覚えたりする必要がある場合は、同程度の強度でも扱いやすいダイスウェアのパスフレーズが便利です。既存のパスワードの確認には使わず、強度チェッカーを使ってください。
パスワード生成の仕組み
文字のプールは、選択した文字種の和集合です(大文字26、小文字26、数字10、記号27:!@#$%^&*()-_=+[]{};:,.<>/?~)。各文字はcrypto.getRandomValuesと棄却サンプリングで選ばれるため、プール内のすべての文字がまったく同じ確率になります(剰余バイアスなし)。すべての文字種が必須の場合は、各文字種を含むまでパスワード全体を引き直すため、結果は有効なすべてのパスワードに対して一様になります。表示されるエントロピーは、可能なパスワードの正確な個数の log2 で、必須の文字種に対する包除原理で計算されます。
一般的な使用例
- パスワードマネージャーに保存する、サイトごとに固有のパスワードを作成する
- 強力なWi-Fi(WPA2/WPA3)のパスフレーズを設定する
- データベースやサービスアカウントの初期パスワードを生成する
- 情報漏えいで流出したパスワードを置き換える
セキュリティ注意事項
生成したパスワードはパスワードマネージャーに保存し、サイト間で使い回さないでください。クリップボードの内容は他のアプリから読み取れるため、共有のコンピューターでは貼り付けたあとに消去してください。
よくある質問
パスワードはどのくらいの長さにすべきですか?
4つの文字種すべてを使うと、16文字で約103ビットになり、オフライン攻撃による総当たりでは到底破れません。NIST SP 800-63B-4は、単独で使うパスワードには15文字以上を求めています。
パスワードはサーバーに送信されますか?
いいえ。ブラウザ上のJavaScriptで生成され、どこかにコピーしない限りページの外に出ることはありません。
すべての文字種を必須にするとエントロピーがわずかに下がるのはなぜですか?
各文字種を最低1文字含める条件により、ある文字種を欠くパスワードが除外されるため、可能性がわずかに減ります。ページでは、よくある「長さ × log2(プールの大きさ)」の近似ではなく、正確な数を計算します。
紛らわしい文字を除外すると何が変わりますか?
0、O、1、l、I、|がプールから除かれ、手で読んだり入力したりしやすくなります。その分エントロピーはわずかに下がりますが、表示される値にはすでに反映されています。