パスワード生成ツール
文字セットを選んで強力な乱数パスワードを生成します。パスワード生成ツールはエントロピーをビットで示し、すべてブラウザ内で動作します。
すべての計算はブラウザ内で実行されます。入力内容がサーバーに送信されることはありません。
結果
—
—
コピー
一括パスワード
パスワード生成ツールは、選んだ文字セットから乱数パスワードを生成し、あいまいなラベルではなくエントロピーのビット数で強度を報告します。長さは4から128文字、紛らわしい文字や括弧の除外、覚えやすい複数語パスワードを作るパスフレーズモードが選べます。
すべてのパスワードは、OSの暗号学的乱数生成器を使ってブラウザ内で生成されます。送信、ログ記録、保存は一切行いません。
乱数パスワードを生成する
長さを設定し、どの文字セットから引くかを選ぶと、すぐにパスワードが返ります。何度でも再生成でき、押すたびに同じプールから新しい値が引かれ、どれも記録されません。
4セットすべてから16文字は、お金や身元を守る用途の妥当な既定値です。ログイン試行にレート制限があるサービスでは12文字で足ります。12未満は、サイト側の防御次第でしか安全ではなく、それは確認できません。
長さは複雑さより重要です。94文字プールで1文字足すと、探索空間は94倍になります。固定長で小文字を記号に替える効果ははるかに小さいです。サイトが16文字で上限を設けるなら、16文字すべてを使います。
含める文字セットを選ぶ
4セットがあり、有効にするたびに各文字が引かれるプールが広がります。
| セット | 文字 | 数 | |
|---|---|---|---|
| 小文字 | a-z | 26 | |
| 大文字 | A-Z | 26 | |
| 数字 | 0-9 | 10 | |
| 記号 | `!"#$%&'()*+,-./:;<=>?@[\]^_{\ | }~`` | 32 |
4つすべてで94文字プールになります。3つの修飾子で狭められます。
紛らわしい文字を除外は i I l 1 L |、o O 0、引用符や句読点の紛らわしい形を除きます。画面から読み取って別端末で打つ、電話で伝えるパスワード向けです。エントロピーはわずかに下がりますが、実際の手間は大きく減ります。
括弧を除外は < > ( ) [ ] { } を除きます。古いシステムのログインフォームで誤処理されることがあり、スクリプト内でパスワードを使うシェル環境では特別扱いされることもあります。
重複文字なしは各文字を1回だけ使います。強そうに見えてわずかに弱く、配置するたびにプールが縮み、長さはプールサイズで上限が付きます。ポリシーで要求される場合だけ使います。
全文字を結合プールから引くか、選んだ各セットから少なくとも1文字を保証するかも選べます。後者は多くの企業ポリシーが要求するためです。各セットから1文字を強制すると、有効な組み合わせの一部が除外されるため、エントロピーはごくわずかに下がります。
ビット単位のエントロピーで強度を測る
エントロピーは攻撃者が必要とする推測回数を2の累乗で表します。「強い」と言うだけの強度メーターでは、何に対して強いのか分かりません。
Entropy (bits) = length × log₂(pool size)
Combinations = pool size ^ length
ビットは加法的で、1ビット増えるたびに作業は2倍になります。60ビットのパスワードは59ビットの2倍、50ビットの1,024倍の時間がかかります。だから短い長さの増加でも安全性は大きく上がります。
おおよその目安と、その理由:
- 40ビット未満: 一般向けGPUで数分以内に破られます。重要な用途には不十分です。
- 50〜60ビット: 気軽な攻撃には耐え、本気のオフライン攻撃には倒れます。掲示板ログイン向けです。
- 70〜80ビット: 現実的なオフライン攻撃に耐えます。多くのアカウントの妥当な目標です。
- 100ビット超: 予測可能なハードウェア総当たりを超えます。パスワードマネージャのマスターパスワードや暗号鍵向けです。
16文字パスワードのエントロピーを計算する
4セットすべてから引いた16文字パスワードは、おおよそ105ビットのエントロピーです。計算手順です。1. プールを足す。 26小文字 + 26大文字 + 10数字 + 32記号 = 94文字 2. 1文字あたりのビットを求める。 log₂(94) = 6.55ビット
3. 長さを掛ける。 16 × 6.55 = 104.9ビット
4. 組み合わせ数として表す。 94¹⁶ ≈ 3.7 × 10³¹ 通り
12文字に短くするとエントロピーは78.6ビット、4.7 × 10²³ 通りになります。依然として強く、16文字版よりおおよそ680億倍攻撃しやすくなります。16文字から記号セットを外すとプールは62になり95.3ビット、4文字短くするより損失は小さいです。
この比較は重要です。4文字削る方が、文字セット1つ丸ごと削除するよりコストが大きい。 長さがレバーです。
パスワードの解読にかかる時間を理解する
単一の「解読時間」は、攻撃方法を述べなければ意味がありません。同じパスワードでも、推測の仕方次第で秒単位か太陽より長いかが変わるため、生成ツールは2つのシナリオを報告し、両方を明示します。
Expected guesses = 2^(entropy − 1)
Time = expected guesses / guesses per second
オンライン攻撃、おおよそ10³回/秒。 攻撃者がライブのログインフォームに推測を送ります。レート制限、ロックアウト、ネットワーク遅延が速度を抑えます。単一アカウントへの多くの実攻撃はこれに近く、生成されたパスワードはほぼ無期限に耐えます。
オフライン攻撃、おおよそ10¹²回/秒。 サービスが侵害され、攻撃者がパスワードハッシュを保持しています。GPUクラスタと未ソルトMD5やSHA-1のような高速ハッシュでは、1秒に1兆回以上推測できます。こちらが重要なシナリオで、こちらは影響できません。
10¹²回/秒では、78ビットのパスワードはおおよそ4,800年、105ビットは宇宙の年齢をはるかに超えます。40ビットは1秒未満です。
数字が隠す注意点: これらは盲目的な推測を前提にしています。単語、日付、キーボードパターンから作ったパスワードは、文字数が示すよりはるかに早く落ちます。攻撃者はありそうな候補を先に当てます。だからここでは記憶しやすいものではなく、乱数から引いています。
乱数文字列の代わりにパスフレーズを使う
パスフレーズは、ランダムな複数語を連結したものです。乱数文字列に近いエントロピーを保ちつつ、覚えて打てるため、マネージャに入れられない少数のパスワード向けです。
Entropy = number of words × log₂(word list size)
7,776語リストでは、各語が log₂(7776) = 12.9ビットを寄与します。
| 語数 | エントロピー | 相当 |
|---|---|---|
| 4 | 51.7ビット | 8文字の乱数パスワード |
| 5 | 64.6ビット | 10文字の乱数パスワード |
| 6 | 77.5ビット | 12文字の乱数パスワード |
| 7 | 90.4ビット | 14文字の乱数パスワード |
6語で77.5ビット、オフライン攻撃に十分で、多くの人が数回の反復で覚えられます。correct-horse-battery-staple-mountain-glass を打つか、K7#mQ2vX@pL9 を打つかを比べてください。どちらも強いですが、テレビのリモコンで思い出して打てるのは一方だけです。
パスフレーズを安全にする2つの規則。語は人間ではなく機械がランダムに選ぶこと。人間の語選択は一般語彙や連想に偏ります。既存のフレーズを形成してはいけません。歌詞の引用は語数に関係なくエントロピーがほぼありません。
パスワードマネージャのマスター、デバイスログイン、メールアカウントにはパスフレーズを使います。それ以外はマネージャに保存する乱数文字列を使います。
この生成ツールが crypto.getRandomValues を使う理由
パスワード生成ツールは crypto.getRandomValues()、ブラウザの暗号学的乱数生成器から各文字を引きます。OSのエントロピープールで初期化されます。Math.random() は使いません。この区別が、パスワードと見かけだけの違いです。
Math.random() はシミュレーションやゲーム向けの高速疑似乱数です。内部状態は小さく、ブラウザはセキュリティ用途に不適と明記し、実装とおおよその生成時刻が分かれば出力は予測可能です。Math.random() 上の生成ツールは推測ではなく再構成可能なパスワードを作り、文字数はその防御になりません。
もう一つ、より subtle な要件があります。単純な剰余で乱数バイトを文字セットに写すと偏りが入ります。2³²は94で割り切れないため、セット先頭の文字がわずかに多く出ます。個々のパスワードでは見えず、十分な数では測定でき、実エントロピーは計算値を下回ります。この生成ツールは棄却サンプリングを使い、不均等な末尾の値は捨てて再抽選し、分布を均一に保ちます。
パスワード用のシードは表示しません。意図的です。 このサイトの他の乱数器は再現と検証のためシードを表示します。再現可能なパスワードは侵害済みパスワードなので、ここでは保存、表示、導出もしません。
すべてブラウザ内で完結します。パスワードはサーバーに送られず、ストレージにも書かれず、分析イベントにも含まれません。
パスワードを安全に保管する
生成したパスワードは、一度だけ使い、取り出せる場所に保存して初めて役に立ちます。再利用が他のすべてを台無しにします。1サービスが侵害されると、攻撃者は取得した資格情報をどこでも試し、10サイトで使い回した105ビットのパスワードは、最も弱い1つが落ちた時点でどこも守れません。
重要度順に4つの実践:
パスワードマネージャを使う。 覚える・再入力する必要がなくなり、再利用や簡略化の動機が消えます。長いパスフレーズで保護し、そのパスフレーズとリカバリキーを物理的に安全な場所にオフラインで控えます。
二要素認証を有効にする。 提供されているところでは必ず。SMSより認証アプリやハードウェアキーを優先します。SMSコードはSIMスワップで傍受されます。第2要素はパスワードが漏れてもアカウントを守ります。
理由があるときだけ変更する。 90日ごとの定期ローテーションはNISTがもはや推奨しません。予測可能な変形を促すためです。侵害の兆候、疑い、再利用が分かっているパスワードでは直ちに変更します。
アドレスを既知の侵害と照合する。 メールアドレスを公開侵害データと検索できるサービスは、今対処すべきアカウントを教え、スケジュールで全部変えるより有用です。
よくある質問
パスワードはどのくらいの長さにすべきですか?
お金、身元、通信を守るアカウントでは16文字が妥当な既定値で、全文字セットからおおよそ105ビットのエントロピーです。12文字はおおよそ79ビットで、価値の低いアカウントに足ります。サイトがもっと許すなら長く使い、1文字足すたびに探索空間はプールサイズ倍になります。
強いパスワードの条件は何ですか?
ランダム性と長さ、この順です。強いパスワードは大きな文字プールから予測不能に引かれ、可能性の総数が探索不可能な長さです。p@ssw0rd のような置換はほとんど効きません。攻撃者はそのパターンを先に当てます。ビットのエントロピーが実強度を測り、「強い」ラベルは測りません。
ここで生成したパスワードは安全に使えますか?
はい。すべて crypto.getRandomValues()、OSの暗号学的乱数生成器でブラウザ内生成し、棄却サンプリングで文字分布を均一に保ちます。送信、ログ、保存はなく、このページにDOMアクセスできる第三者スクリプトも動きません。
パスワードはどこかに送られますか?
いいえ。生成は完全にブラウザ内で、生成値は外に出ません。ブラウザストレージ、共有リンク、分析イベントにも載りません。タブを閉じると永久に破棄されるので、離れる前にパスワードマネージャへコピーしてください。
ビットのエントロピーとは何ですか?
ビットのエントロピーは、攻撃者が必要とする推測回数を2の累乗で表します。60ビットでは期待推測回数は約2⁵⁹です。1ビット増えるたびに難易度は2倍になり、16文字×94文字プールで104.9ビット、約3.7 × 10³¹ 通りになります。
記号を含めるべきですか?
サイトが受け付けるなら含めますが、記号を長さより優先しないでください。16文字に32文字の記号セットを足すと95.3から104.9ビット。記号なし16文字に4文字足すと95.3から119.1ビット。長さの方が強いレバーです。
パスフレーズは乱数パスワードと同じくらい強いですか?
パスフレーズはランダムに選んだ複数語の連結です。7,776語リストから6語で77.5ビット、12文字乱数パスワード相当で、覚えて打ちやすいです。機械が選び、既存フレーズを形成してはいけません。認識できる引用はエントロピーがほぼありません。
強いパスワードをアカウント間で使い回せますか?
いいえ。使い回しが最も有害な習慣で、強度はそれを防ぎません。1サービスが侵害されると、攻撃者は主要サイトすべてで資格情報を試します。各アカウントに固有のパスワードが必要で、それがパスワードマネージャの存在理由です。
パスワードはどのくらいの頻度で変えるべきですか?
理由があるとき: 既知または疑わしい侵害、共有・再利用パスワード、もはや管理していない端末。NISTは定期ローテーション指針を撤回しました。強制変更は数字を末尾に足すような予測可能な変形を促し、弱めるためです。
モジュロバイアスとは何ですか?
乱数バイトを単純な剰余で文字セットに写すと偏りが入ります。バイト範囲はセットサイズで割り切れないことが多く、一部の文字がわずかに多く出て実エントロピーが計算値を下回ります。この生成ツールは不均等な末尾を捨てて再抽選し、分布を均一に保ちます。
まとめ
パスワード生成ツールは最大94文字プールからブラウザの暗号学的乱数生成器でパスワードを引き、棄却サンプリングで分布を均一に保ち、ラベルではなくビットのエントロピーで強度を報告します。
長さが最強要因: 全セット16文字はおおよそ105ビット、4文字短くする方が記号セット丸ごと削除よりエントロピーを多く失います。解読時間はオンライン10³回/秒とオフライン10¹²回/秒の両方を示します。単一の無条件数字は意味がありません。パスフレーズモードは同等の強度を保ちつつ覚えやすく、マネージャに入れられない少数向けです。すべてローカル生成で、送信・ログ・保存はありません。
関連計算機
大きな数の計算機 · Base64エンコード・デコード · 十六進数計算機
ビルドメモ
crypto.getRandomValues()のみ。 このファイルのMath.random()は出荷済み脆弱性です。棄却サンプリング必須。94要素セットで1000万回のカイ二乗適合度で均一性をテスト。- エントロピー数値はテストフィクスチャ: 16文字/94プール = 104.9ビット; 12/94 = 78.6; 16/62 = 95.3; 20/62 = 119.1; 6語/7776 = 77.5。
- このページではシード表示・保存・導出なし。レシートパネルはCSPRNGと非送信保証のみ。
- リードの非送信行は約束。分析イベントに生成値を載せない。DOMアクセスする第三者スクリプトを読み込まない。
- パスワード履歴、永続化、localStorage なし。
- NISTローテーション指針は SP 800-63B。引用追加時はそれを引用。版番号を捏造しない。
- Word count 2,090.