🔐 パスワード生成ツール(強度診断付き)

ランダム文字列、または覚えやすいパスフレーズを、安全な乱数から自動生成します。

🔒 生成・履歴の表示はすべてこのブラウザ内のみで行われます。パスワードや履歴はサーバーには一切送信されず、保存もされません(ページを離れると消えます)。
16文字
文字種を1つ以上選択してください。

手入力・目視確認が必要な場面で見分けにくい文字(小文字l・数字1・大文字I・数字0・大文字O)をまとめて除外します。

5語

correct-horse-battery-staple方式。単語リスト(約300語)から安全な乱数で選んでつなげます。大文字化・数字追加はいずれも推測されにくさを上げるオプションです。

3個
生成結果

安全なパスワードとは

なぜ「暗号学的に安全な乱数」が重要なのか

本ツールは、一般的なプログラムの乱数(Math.random()等)ではなく、ブラウザのcrypto.getRandomValues()という暗号用途向けのAPIを使ってパスワードを生成しています。一般的な乱数は予測されるリスクがあるのに対し、暗号学的に安全な乱数は推測が極めて困難なため、パスワードや鍵の生成に適しているとされています。さらに、剰余演算による偏り(modulo bias)を取り除く棄却法(rejection sampling)も使っており、文字の出現確率が偏らないよう配慮しています。

強度診断の考え方

強度は「エントロピー(ビット数)」という指標で判定しています。ランダム文字列モードでは「文字数 × log2(使用している文字種の総数)」、パスフレーズモードでは「単語数 × log2(単語リストの語数)」を基本に、ランダム大文字化や数字追加の分を加算して算出し、ビット数に応じて「弱い」〜「非常に強い」の4段階で表示します。文字種を増やす、文字数(単語数)を増やすことが、強度を上げる最も基本的な方法です。

ランダム文字列とパスフレーズ、どちらを選ぶべきか

ランダム文字列は短い文字数でも強度を確保しやすい一方、覚えるのは困難です。パスフレーズ(単語を組み合わせた形式)は、十分な単語数(目安5語以上)を使えば同程度の強度を保ちながら、人間が覚えやすいという利点があります。使い分けの目安として、パスワード管理ツールに保存するならランダム文字列、自分で記憶する必要があるならパスフレーズが向いています。

よくある質問

生成したパスワードはどこにも送信されないの?
はい。パスワードの生成・強度判定・履歴表示はすべてブラウザ内のJavaScriptで完結しており、入力や生成結果がサーバーに送信されることはありません。生成履歴もページを離れると消え、保存されません。
「強度:非常に強い」なら絶対に安全ですか?
強度診断はあくまで文字の組み合わせ数(エントロピー)に基づく理論上の指標です。同じパスワードを複数サービスで使い回したり、他の経路(フィッシング・漏えい等)で流出したりすれば、強度の高さに関わらず危険にさらされます。強度だけに頼らず、サービスごとに別のパスワードを使う、二段階認証を併用するなどの対策も重要です。
記号を含めない方が安全なことはありますか?
サービス側がそもそも記号の利用を許可していない場合は、記号を含めると逆にエラーになります。その場合は「記号」のチェックを外し、代わりに文字数を増やすことで強度を補うのがおすすめです。一般的には、利用可能な文字種はできるだけ多く含めた方が、同じ文字数でも強度は高くなります。
パスフレーズの単語はどこから選ばれていますか?
あらかじめツール内に用意した、意味の分かりやすい英単語のリスト(約300語)の中から、暗号学的に安全な乱数で毎回ランダムに選んでいます。単語の意味内容に偏りが出ないよう、特定のジャンルに限定せず一般的な単語を広く収録しています。