パスワードジェネレーター
暗号学的に安全 // v1.0
範囲:4-64
範囲:1-10
入力待機中...
ランダムパスワードジェネレーターとは?
ランダムパスワードジェネレーターは、許可した文字セットの中から一様にランダムで文字を引き、パスワードを組み立てるツールです。RandomHub はブラウザの Web Crypto API(window.crypto.getRandomValues)と棄却サンプリングを使い、剰余バイアスを避けています — これは主要なパスワードマネージャーが採用しているのと同じ乱数源です。長さ(4〜64 文字)、有効な文字セット(大文字・小文字・数字・記号)、視覚的に紛らわしい文字(l, 1, I, O, 0)を除外するかどうかを、すべて自分で決められます。生成はブラウザ内で完結 — ネットワークには何も流れず、ログにも何も残りません。
誰向けのツールか
プライバシー重視のユーザー
資格情報は自分で管理する派。「信頼してください」のブラックボックスではなく、クライアント側で動作し検証可能なジェネレーターを使いたい人向け。
IT・システム管理者
サービスアカウント、SSH 鍵のパスフレーズ、DB のシード、新人用の一時資格情報。64 文字上限なら、フルエントロピーの鍵を除けばほぼすべて対応可能。
開発者
開発環境用の使い捨てシークレット、テストフィクスチャ、認証フローのモック、サンプルデータ — `pwgen` や `openssl rand` を叩くより、ブラウザのタブのほうが速い場面に。
保護者
初めてアカウントを作る子どもに強いパスワードを設定する場面。紛らわしい文字を除外して生成すれば、声に出して読めて入力ミスも減ります。
セルフホスト派
Vaultwarden / Nextcloud / Postgres / 管理パネルを自前で立てているとき、マネージャーを繋ぐ前に新しい資格情報が必要。生成して貼って、すぐ次へ。
マネージャー側のジェネレーターが渋いとき
一部のマネージャーは、ジェネレーターをメニューや拡張機能の奥に隠していて、ちょうどサインアップの瞬間に動かないことがあります。独立した信頼できるツールが、その瞬間の摩擦を取り除きます。
このパスワードジェネレーターを選ぶ理由
暗号学的に安全な乱数源
バイト列は window.crypto.getRandomValues から取得 — 1Password、Bitwarden、主要ブラウザのジェネレーターも同じ Web Crypto API を使っています。パイプラインのどこにも Math.random はありません。
剰余バイアスを排除
`random % poolSize` は、プールサイズが乱数源を割り切らないと低位インデックスに偏ります。Uint32 に対して棄却サンプリングを行い、各文字が等確率になるようにしています。
ビット単位のリアルな強度メーター
エントロピーは長さ × log₂(プールサイズ) — 教科書通りの式です。階層は弱い <40 ビット、普通 40〜63、強い 64〜95、要塞級 96 以上。設定が目標に届いているか一目でわかります。
ブラウザの中で完結
生成時にネットワークリクエストは一切発生しません。ログ・保存・送信・解析、どれもしていません。DevTools を開いて生成ボタンを押してみてください — Network タブは静かなままです。
よくあるシナリオと例
銀行サイト用の新規パスワード
記号を受け付けない銀行や行政サービスに登録する場面。長さ 20、大文字 / 小文字 / 数字を有効化、記号は無効、紛らわしい文字も除外 — 紙の控えで読み返してもブレない。
設定:長さ 20、大文字+小文字+数字、紛らわしい文字を除外。例:「Tyek5JWXcbgjLE2EH3vk」 — 20 × log₂(58) ≈ 117 ビット、要塞級域、英数字のみ。
SSH 鍵のパスフレーズ
秘密鍵には日に一度くらい暗記から打つパスフレーズが要る。長さ 24、全セット、紛らわしい文字も含める — 高エントロピーかつ読める。あとはマネージャーに保存して暗記をやめる。
設定:長さ 24、全セット、紛らわしい文字の除外オフ。例:「K9$mZ#7vTq!4nL@8pR2&yX#W」 — 24 × log₂(76) ≈ 150 ビット。鍵そのものより長持ちする強さ。
使い捨てのテスト用アカウント
開発中の使い捨てアカウント用。長さ 12、小文字 + 数字で十分 — 1 時間後には消すアカウント。
設定:長さ 12、小文字+数字のみ。例:「k7vmqr3z9fnp」 — 12 × log₂(36) ≈ 62 ビット。「普通」域で、60 分用には十分。
共有キオスクで読み上げて使うパスワード
一人が読み上げ、もう一人が打つ場面。紛らわしい文字を除外(小文字 l・大文字 I・数字 1・大文字 O・数字 0 を消す)— 写し間違いの大半が消えます。
設定:長さ 16、大文字+小文字+数字、紛らわしい文字を除外。例:「RvkP4hgWmFu82tNz」 — 16 × log₂(58) ≈ 94 ビット。要塞級にあと一歩、騒がしい部屋でも読み取れる。
使い方
- 1.
長さを決める
4〜64 文字。多くのアカウントは 16 が手堅い既定値。SSH パスフレーズや自己ホストの root 用には 24 以上。
- 2.
文字セットを選ぶ
大文字・小文字・数字・記号を切り替え。有効なセットが増えるほどプールが広がり、1 文字あたりのエントロピーが上がります。結果には有効な各セットから最低 1 文字を保証します。
- 3.
紛らわしい文字をどうするか
オフ(既定):l, 1, I, O, 0 をプールに残す — エントロピーがわずかに上がる。オン:除外 — 読み上げや手書き写しの精度が上がる。
- 4.
生成してコピー
生成ボタン、または Enter。各パスワードに個別のコピーボタンがあり、「すべてコピー」は複数生成(1 〜 10 個)に対応。公共空間で生成するときは「表示/非表示」で覗き見対策。
よくある質問
このジェネレーターは本当に安全?
乱数は window.crypto.getRandomValues から取得しています — 1Password、Bitwarden、主要ブラウザの内蔵ジェネレーターと同じ Web Crypto API です。剰余バイアスは棄却サンプリングで除去しています。生成は完全にクライアント側 — DevTools を開いて生成ボタンを押せば、ネットワーク通信が出ないことを確認できます。
「剰余バイアス」とは何で、なぜ問題?
32 ビットの乱数を作って `n % poolSize` を取る素朴な方法では、プールサイズが 2³² を割り切らないとき、特定の位置がほんの少し出やすくなります。パスワードの場合これはエントロピーの漏洩です。RandomHub は不均衡な領域に落ちたサンプルを捨てて引き直すことで、どの文字も等確率になるようにしています。
ビット強度はどう計算している?
エントロピー = 長さ × log₂(プールサイズ)。16 文字を小文字+数字だけで作ると 16 × log₂(36) ≈ 83 ビット。同じ長さで 4 セット全てを使い、紛らわしい文字フィルタも外すと 16 × log₂(94) ≈ 105 ビット。階層は弱い <40、普通 40〜63、強い 64〜95、要塞級 96 以上。
紛らわしい文字を除外する意義は?
l, 1, I, O, 0 は多くのフォントで見た目が似ています。パスワードを声に出す、紙に書く、電話で口頭伝達する、キオスクの画面で見せる、こうした場面でフィルタが効きます。代償はプールがわずかに小さくなりエントロピーが少し下がること — 多くの場合、割に合うトレードオフです。
パスワードはどこかに保存されていますか?
いいえ。生成はブラウザ上の JavaScript で行われます。生成ボタンを押してもページはネットワークリクエストを発しません。ログにも、ストレージにも、送信先にも、解析パイプラインにも、何も残りません。後から問い合わせを受けても、生成したパスワードを復元することはできません — 痕跡自体がありません。
最小長が 4 で 8 ではないのはなぜ?
ほとんどのアカウントは 12 以上を使うべきです。最小 4 を残しているのは、ドアコード、アプリの PIN、教室向けの短文字ゲームなど「PIN 的」な正当な用途があるためです。エントロピーが低い場合、強度メーターが警告します。
「記号」をオンにしたとき、含まれる記号は?
`!@#$%^&*()-_=+[]{};:,.<>?/` の 26 文字です。フォーム検証で破綻しがちな文字(バックスラッシュ、シングル/ダブルクォート、バッククォート、空白)は意図的に除外しているので、登録フォームの相性が広いはずです。
「correct horse battery staple」のようなパスフレーズは作れる?
現状は作れません — RandomHub は文字単位のパスワード生成です。Diceware 形式のパスフレーズには厳選された単語リストが必要で、別ツール扱いになります。需要があれば、別ページで提供する形になります。
強いランダムパスワードについて
パスワードがブルートフォースに耐える強さは、ビット単位のエントロピーに対して指数的に伸びます。94 種類の表示可能 ASCII 文字から作る 12 文字のパスワードは約 79 ビット — ハッシュが適切にストレッチされていれば、現実的なハードウェア予算ではもうオフライン攻撃で破れない領域です。16 文字なら約 105 ビット、24 文字なら約 158 ビットで、これは AES-128 の実用的な安全レベルを大きく超えます。ここ十年のパスワード研究の結論は、長さは文字クラスの種類より効くというものでした。10 文字に記号を足すよりも、同じ文字を 14 文字に伸ばす方が、結果として強くなります。RandomHub の既定値 — 長さ 16、4 セット全有効、紛らわしい文字フィルタなし — は、ほとんどの脅威モデルにおいて要塞級域に余裕で入っています。このツールはあえて狭く設計しています — 暗号学的乱数、設定可能な長さと文字セット、誠実なエントロピーメーター、それ以外は持ちません。「ブラウザの外には出さない」という約束を崩さずワークフローを明確に良くする機能があれば、お知らせください。
関連ランダムツール
関連ランダムツール
授業、ゲーム、企画、文章作成、日常の判断に使える関連ツールです。