Password Generator:強力なランダム文字パスワード
暗号学的に安全なランダムパスワード(8-128文字)を生成。文字種カスタマイズ、紛らわしい文字の除外、エントロピーのリアルタイム表示付き。
Password Generator とは?
Password Generator は crypto.getRandomValues と棄却サンプリングを使って密度の高いランダム文字パスワードを作るツールです。各文字は選んだアルファベットから一様な確率で引かれ、剰余バイアスはありません。手で打つことのないクレデンシャルが必要なときに使います — APIキー、パスワードマネージャーのエントリ、サービスアカウント、要するに金庫(vault)に住むものすべて。ほとんどの用途では4種すべての文字クラス込みで24文字を初期値にし、root アカウントや署名鍵だけ32か40まで上げます。覚えやすさが必要なら、本サイトの Passphrase Generator が XKCD 方式の単語ベースのアプローチを提供します。このページは逆のトレードオフ、すなわち1文字あたりのエントロピーを最大化し、覚えやすさはゼロでよい、という設計の話です。
主な機能
- 暗号学的に安全なソース — ランダム性は Web Crypto API の裏側にある CSPRNG、
crypto.getRandomValues由来です。素朴な剰余ではなく棄却サンプリングを使うため、88文字のアルファベットでも先頭26文字に偏らない一様な抽選になります。 - 8 から 128 までの長さスライダー — ドラッグするか数値を入力します。隣の数値入力フィールドで正確な値を打ち込めます。8が下限なのはそれより短いと生成する意味がないため。128 は文字を切り詰めるフィールドの天井です。
- 4つの独立した文字クラス切り替え — 大文字 A-Z、小文字 a-z、数字 0-9、記号
!@#$%^&*()_+-=[]{}|;:,.<>?。対象システムが拒否する種類のチェックを外します。最後の1クラスは外せないようにしてあるので、空のアルファベットからは生成できません。 - 紛らわしい文字を除外 —
O、0、I、l、1をアルファベットから抜きます。1文字あたり約0.4ビットのコストで、印刷したリカバリーコードを目を凝らして読む手間を省きます。 - リアルタイムのエントロピー表示 — クラスを切り替えたり長さスライダーを動かしたりするたびに、合計ビット・charset サイズ・1文字あたりビットが再計算されます。合計ビットは Weak(赤)から Ludicrous(虹)までの7段階で色分けされます。
- 最大100まで一括生成 — カウントスライダーを設定し Generate を押せば、最大100個の候補が個別のエントロピー表示付きで一度に出力されます。
- 行ごと/一括コピー — 各パスワードに専用のコピーボタン、Copy All はリスト全体を改行区切りで連結します。Clipboard API が使えない場合は
execCommand('copy')にフォールバックします。 - パスワードごとの強度ティア — 各出力行はビット数とカラー付きティアラベル(Weak、Fair、Good、Strong、Very Strong、Fortress、Ludicrous)を表示します。
Password Generator の使い方
ステップ1:長さを設定する
「Length」スライダーは8から128まで動きます。ラベルが現在の値を表示します。隣の数値入力フィールドも同じ範囲を受け付け、フォーカスを外したときに範囲外の値をクランプします。デフォルトは16で、通常のアカウントには十分です。重要度の高いものは24か32まで上げてください。
ステップ2:文字クラスを選ぶ
「Character Sets」の下の4つのチェックボックスでアルファベットを切り替えます:
- 大文字(A-Z) — 26文字
- 小文字(a-z) — 26文字
- 数字(0-9) — 10文字
- 記号 —
!@#$%^&*()_+-=[]{}|;:,.<>?から26文字
デフォルトでは4つすべてオンになっており、88文字のアルファベット(約6.46ビット/文字)になります。対象システムが禁止する種類を外してください。記号を拒否されると1文字あたり約0.4ビット失われるので、長さを数文字足して補いましょう。
ステップ3:紛らわしい文字をどうするか決める
クラス切り替えの下の「Exclude ambiguous characters」チェックボックスは、結合アルファベットから O、0、I、l、1 を抜きます。紙から読むパスワード — 印刷したリカバリーコード、手書きのウォレットシード、サポートに音読する文字列 — のときはチェックを入れます。可読性が関係なく、1ビットでも欲しい vault 専用クレデンシャルではオフのままにします。
ステップ4:エントロピーパネルを読む
オプションの下のグレーの帯には3つの数値があります:
- Total entropy — 設定した長さとアルファベットでのパスワードのランダム性をビットで表示。ティアごとに色分け。
- Charset — クラス切り替えと紛らわしい文字の除外後の現在のアルファベットサイズ。
- Bits per char —
log2(charset_size)。4クラスすべてオンで除外なしの場合:log2(88) ≈ 6.46。
強度ティアは合計ビット数に対応します:
- Weak(赤):40ビット未満
- Fair(オレンジ):40-49ビット
- Good(黄):50-59ビット
- Strong(ライム):60-79ビット
- Very Strong(シアン):80-99ビット
- Fortress(バイオレット):100-149ビット
- Ludicrous(虹):150ビット以上
実用上:60ビットが下限、80ビットが日常運用の目標、100以上はマスタークレデンシャルや署名鍵のティアです。
ステップ5:生成・確認・コピー
「Generate」カウントスライダー(1-100)を設定して Generate をクリック。結果はスクロール可能なリストに番号付きで表示され、各個にエントロピー表示とティアラベルが付きます。行のコピーアイコンはその1個を、Copy All はリスト全体を改行区切りでコピーします。Clear はリストを空にします。結果パネル上部の Regenerate は同じ設定で新しいバッチを生成します。
実用例
24文字のパスワードマネージャーエントリ
設定:Length 24、4クラスすべてオン、紛らわしい文字除外オフ、count 5。
出力例:
qP7$mK#xR2!nVz8&jL*pYwH9
これは 24 * log2(88) ≈ 155 ビット — Ludicrous ティアです。「1Password に保存して二度と見ない」タイプの定番クレデンシャルです。一度に5個生成しておくと、autofill が失敗して手で打つ羽目になっても先頭の数文字が打ちにくくないものを選べます。
漏洩したサービスアカウントの API キー差し替え
設定:Length 40、大文字+小文字+数字、記号オフ(一部の HTTP クライアントは未だヘッダー内の記号を扱い損ねます)、紛らわしい文字除外オフ。
出力例:
aFq2KpRy7nMxBz4tHsWvLg3jCdN8VuTeXrYzPmQk
これは 40 * log2(62) ≈ 238 ビット。記号オフで1文字あたりエントロピーが 6.46 から 5.95 に落ちますが、長さがそれを十分補い、ヘッダー値の & や + がどこかで意図せず URL デコードされる事故も避けられます。漏洩した鍵をローテートし、新しい値はシークレットマネージャーに入れ、40文字あればローテーションシステムが誤ってログに残してもブルートフォースは検討にも上りません。
二度と訪れないサイト用の使い捨てパスワード
設定:Length 16、小文字+数字のみ、紛らわしい文字除外オン、count 1。
出力例:
8kqr3zhmf4td9xbn
約 16 log2(31) ≈ 79 ビット。小文字と数字、紛らわしい文字を抜いた構成は、フォーラムの登録フォームが記号を拒否し、なぜ でバリデーターが叫ぶのかを2分かけてデバッグしたくないときに選びます。それでも 79 ビット — Strong — で、二度と来ないサイトには過剰ですが、覚えるのはマネージャーなので過剰さはタダです。
ヒントとベストプラクティス
長さは複雑さに常に勝ちます。 30文字の小文字のみ(~141ビット)は、16文字の全クラス入り(~103ビット)より強力です。サイトが「大文字・数字・記号必須」を強制するならすべてチェック、そうでないなら長くて単純な方が扱いやすい選択肢です。
60が下限、80が日常目標、100以上が高価値ティア。 60ビット未満では GPU クラスタが鍵空間を数日で食い尽くせます。80を超えると国家規模のリグですら年単位を要し、100を超えるとブルートフォースの世界からは出ています。
パスワードマネージャーに任せて全部覚えてもらう。 ランダムな24文字パスワードは設計上、覚えられません。本当に打つ必要があるクレデンシャル — マスターパスワード、ディスク暗号化キー、リカバリーフレーズ — は代わりに Passphrase Generator で作ります。
10個出して1個選ぶ。 count 5-10 にしておけば、打ちにくい先頭シーケンスから始まらない候補を選べます(!@#$ は数学的には他の任意の4文字と等価ですが、人間工学的にはきつい)。
生成したパスワードに後加工を加えない。 生成後にいじれば、必ずパネル表示より下にエントロピーが落ちます。出力をそのまま受け入れるか、もう一度生成してください。
よくある問題と対処
「Please select at least one character set」 — クラスチェックボックスがすべて外れています。ツールは最後の1つを外させませんが、どれもチェックする前に Generate を押すとこのエラーが出ます。少なくとも1つチェックしてください。
サイトが生成パスワードを長すぎとして拒否する。 一部のレガシーフォームは入力を16、20、32文字で黙って切り捨てます — 長い文字列を受け付けても先頭 N 文字しか保存しないのです。フル文字列でログインできない場合は長さスライダーを下げ、ローテートしたクレデンシャルで再試行してください。
サイトが特定の記号を拒否する。 「Symbols」を完全に外し、失われたエントロピーを取り戻すために長さを4-6文字増やしてください。このジェネレーターにカスタム記号フィールドはありません — 記号オフで生成し、フォームが要求するなら許可された記号を手動で挿入します。
16文字でもエントロピーが「Weak」と表示される。 クラスを1つしかチェックしていない可能性が高いです。16文字の数字のみは 16 * log2(10) ≈ 53 ビット — Good です。2つ目のクラスをオンにすればビット数が跳ねます。
生成パスワードが「ランダムらしくない」見た目になる。 ランダム出力は規則的でないように見えるクラスタを頻繁に作ります — 母音が3連続、大文字が隣接など。人間のパターン認識はこれらを「変」と感じますが、まさに一様ランダム性が生み出すものです。
プライバシーとセキュリティ
パスワード生成は Web Crypto API が提供する CSPRNG、crypto.getRandomValues を使ってブラウザ内で実行されます。生成されたパスワードはサーバーに送信されません。ツール下の History パネルは、コピーして失くしたものを取り戻せるよう、最近の生成履歴をブラウザの IndexedDB にのみ保存します。終わったらパネルからクリアするか、ローカルに痕跡を残したくない場合はプライベート/シークレットウィンドウで使ってください。ブラウザの CSPRNG はモダンなプラットフォームでは OS レベルのエントロピーで seed されるので、「シードがちゃんとしてるか信じてくれ」という注意は不要です。
よくある質問
なぜパスフレーズではなくランダム文字を使うのか?
ランダム文字は1文字あたりが密です — 4クラスすべてオンで約6.46ビット/文字、対する7,776語パスフレーズリストは約12.9ビット/単語です。打つことのないクレデンシャルでは長さが安いので密度が勝ちます。打つクレデンシャルでは覚えやすさが効くのでパスフレーズが勝ちます。vault 専用クレデンシャルにはこのツール、マスターパスワードやリカバリーフレーズには Passphrase Generator を使ってください。
棄却サンプリングとは何で、なぜ重要なのか?
ランダムバイト(0-255)を生成して 88文字アルファベットから引くために byte % 88 を取ると、byte % 88 の最初の88出力は最後の80よりわずかに出やすくなります。256が88の倍数でないからです。棄却サンプリングは偏った範囲に落ちる値を捨てて引き直し、一様分布を作ります。このツールは各文字に対して32ビットのランダム整数でこれを使います。
パスワードはどのくらいの長さがいいのか?
通常クレデンシャルではエントロピーパネルで80ビット以上、高価値クレデンシャルでは100ビット以上を生む長さです。4クラスすべてオンなら、13文字で84ビット、16文字で103ビット。パネルが計算してくれるので、緑以上のティアを目標にしてください。
特定のポリシー(各クラスから1つ以上必要)を満たすパスワードを生成できるか?
このツールは「大文字を最低1つ、数字を最低1つ」といったルールを強制しません。4クラスすべてチェック&長さ16以上であれば、いずれかのクラスを欠く確率は実用上5%未満です。フォームが拒否したら再生成してください。
生成したパスワードを失くしたら?
パスワードマネージャーにコピー済みならそこから復元します。そうでない場合はツール下の History パネルを見てください — 最近の生成をブラウザの IndexedDB に保存しています。履歴を消したかシークレットモードで生成した場合は復元不能です。対象サービスでクレデンシャルをローテートしてください。
関連ツール
- Passphrase Generator — 手で打つクレデンシャル向けに、XKCD 風の覚えやすい単語パスフレーズを生成します。
- UUID Generator — クレデンシャルではなくグローバルにユニークな識別子が必要なとき、v4 UUID を生成します。
- Hash Suite — 生成パスワードを決定的シードとして使うために、SHA-256・SHA-512・BLAKE2 ハッシュを作ります。
- Base64 Encoder/Decoder — 生バイトを誤って扱う環境向けに、生成パスワードを安全に転送できる形にエンコードします。
- 近日公開: Argon2 Hash — 復元ではなく検証のためにパスワードを保存する必要があるとき、現代的な KDF でハッシュ化します。
Password Generator を試す:Password Generator