パスワードジェネレーター
詳細設定
単語は英語の EFF リストから選ばれるため、使用言語にかかわらずパスフレーズは英語になります。
単語リスト: Electronic Frontier Foundation による EFF large wordlist、ライセンス CC BY 3.0 US。 eff.org/dice計算式を表示
| 解読にかかる時間 |
|---|
今回のセッション
まとめて生成
保存した設定
パスワード、パスフレーズ、PIN、鍵
出力欄上のタブで4種類のシークレットを切り替えられる。すべて同じローカルな乱数源を使うが、文字集合と生成規則が異なる。
ランダム — 長さ4〜128文字、大文字・小文字・数字・記号を自由に組み合わせる。詳細設定では実際のサイトが要求する設定を扱える:手入力する場合に紛らわしい文字(0/O、1/l/I)を除外、サイトが禁止する文字を除外、文字種ごとの最小数を指定、連続文字やabc・qweのようなキー配列順を禁止、テンプレート(A大文字、a小文字、#数字、!記号、C子音、v母音)で形そのものを指定、など。
パスフレーズ — 1つの複雑な文字列の代わりに複数のランダムな単語を並べる、XKCD 936のcorrect-horse-battery-stapleの発想。単語はEFF large wordlist(7,776語、diceware標準)から選ばれ、1語につき12.9ビット。5語で約65ビットとなり、xK9#mP2$vL5@nQ8と違って頭で覚えてスマートフォンに打ち込める。単語は英語のリストから選ばれるため、パスフレーズはページの言語にかかわらず英語になる。区切り文字、単語の先頭大文字化、数字や記号の追加も設定できる。もう一方のスタイルは英単語を使わず、発音しやすい音節(tokrilmufsad)を組み立てる — 電話口で伝えやすく、キーボード配列にも依存しない。
PIN — 3〜12桁。スマートフォンのロック、SIMカード、警報パネル、銀行カードなど向け。1234、0000、全桁同一、生年を思わせる並びは拒否され再生成される。この制限は軽視できない — 流出したPINデータセットの分析では、上位20種類の4桁PINだけで全体の約4分の1を占める。桁数を4桁から6桁にするだけで、総当たりの組み合わせ数は100倍になる。
鍵 — コードが必要とする形式の乱数:16進数、Base64、英数字。バイト単位で長さを指定する。例えば32バイトは256ビット鍵(16進数で64文字、Base64で44文字)となり、APIキーやセッションシークレット、JWT_SECRET、SECRET_KEYに使える。同じタブでGitHubで見慣れた形式(k7fp-2mqx)のバックアップコードも生成でき、紛らわしい文字を含まないアルファベットで構成されているため紙に書き写しても読み間違えにくい。
このツールがブラウザのみで動作する理由
ほとんどのパスワードジェネレーターは問題なく機能します — 実際に何が起きているかを考えるまでは。サーバーでパスワードを生成すると、そのサーバーは理論的にそれを見ています。ほとんどのサイトではおそらく問題ありません。しかし「おそらく」は、銀行口座やメールを設定するときに求める確実性ではありません。
このジェネレーターは一つの原則を中心に構築されています:パスワードはデバイスを離れることは絶対にありません。 すべてがJavaScriptでブラウザ内で直接実行されます。コードの関連部分:
const array = new Uint8Array(length);
crypto.getRandomValues(array);
crypto.getRandomValues()は、OSのランダム数生成器からエントロピーを引き出します — 暗号化ライブラリが使用するものと同じソースです。このタブを閉じるとパスワードは消えます。ログなし、データベースなし、サーバーなし。
パスワード「テクニック」の問題
何年もの間、セキュリティアドバイスはこのように聞こえていました:単語を取り、最初の文字を大文字にし、末尾に数字を追加し、一文字を記号に交換する。P@ssw0rdのようなもの。
攻撃者はこれらのテクニックを知っています。辞書攻撃は一般的な単語を試みるだけでなく — 一般的な変更を加えた一般的な単語も試みます。P@ssw0rdは強力なパスワードではありません;それは変装した弱いパスワードです。
「パスワードは下着のようなもの:他人に見せるな、頻繁に変えろ、見知らぬ人と共有するな。」
— Chris Pirillo
本当の変化はパスワードマネージャーとともにやってきました。パスワードを覚える必要がない場合 — Bitwarden、1Password、またはKeePassに安全に保存されている場合 — すべてのアカウントにxK9#mP2$vL5@nQ8のようなものを使用しない理由はありません。生成、コピー、保存。これがすべてのワークフローです。
パスワードを定期的に変更する必要性は、このツールが作られた当初の理由の一つでした。パスワードのローテーションには30秒かかるはずで、頭痛を引き起こすものではありません。
どのくらい長ければ十分か?
長さは複雑さよりも重要です。小文字だけの20文字のパスワードは、4種類すべての文字を含む10文字のパスワードよりも多くのエントロピーを持ちます。両方とも重要ですが、長さが勝ちます。
| パスワード | 長さ | 解読時間 |
|---|---|---|
password123 | 11文字 | < 1秒 |
TanakaHiroshi1985 | 17文字 | 3時間 |
Abc123!@# | 9文字 | 2日 |
MyD0g!sF1uffy | 13文字 | 5年 |
Tr$7mK@p9Lq2 | 12文字 | 200年以上 |
xK9#mP2$vL5@nQ8 | 15文字 | 34,000年 |
NIST Special Publication 800-63Bは最低8文字を推奨していますが、長さが強さの主要な要素であると指摘しています — 特殊文字の必須要件は、パスワードをより予測可能にすることで裏目に出ることがよくあります。
文字種が果たす役割
- 大文字 (A–Z) — 位置ごとに26の可能性
- 小文字 (a–z) — さらに26
- 数字 (0–9) — 10
- 記号 (!@#$%…) — 文字セットによって32以上
4種類すべてを含む16文字の場合(位置ごとに94の可能な値):94¹⁶ ≈ 3.7 × 10³¹の組み合わせ。毎秒10億のパスワードを解読する最新のGPUクラスターでも、宇宙の年齢より長い時間が必要になります。
開発者向け:鍵、シークレット、一括出力
鍵タブがあるのは、changemeやsecret123が.envファイルに紛れ込む頻度が想像以上だからだ。ライブラリが要求する形式でそのまま値を生成できる — 生の鍵には16進数、トークンやヘッダーにはBase64、+や/で問題が起きるシェルやURLには英数字 — そしてバイト単位でサイズを指定する。鍵強度はビット数ではなくバイト数で語られることが多く、16バイトで128ビット鍵、32バイトで256ビット鍵になる。
すべてcrypto.getRandomValues()、ブラウザのCSPRNGから生成される — PythonのsecretsやGoのcrypto/randと同じ種類の乱数源であり、予測可能なMath.random()とは明確に区別される。
パネルの下にあるまとめて生成では最大1,000件を一度に生成し、TXT、CSV、JSON、YAML、.env、SQLとしてダウンロードできる — テストアカウントの準備、初期パスワードの配布、使い捨てスクリプトを書かずに列を埋める用途に向く。一括出力はランダムの設定(またはテンプレート)に従い、パスフレーズとPINのタブの設定は反映されない。
もう2つの細かい配慮:コピーから60秒後にクリップボードを消去はシステムクリップボードにシークレットが残る時間を制限し、保存した設定はよく使うルール(20文字・記号なし・紛らわしい文字を除外、など)をブラウザ内に名前付きで保持しておける。ページのURLにも生成された値ではなく設定だけが載るため、ポリシーをブックマークしたり同僚に送ったりしても安全だ。
パスワードマネージャーの必要性
強力なパスワードを生成しても、再利用したりデスクトップのpasswords.txtに保存したりすれば無意味です。Verizonのデータ侵害調査報告書は、侵害の81%が盗まれたパスワードまたは弱いパスワードを含むことを一貫して発見しています。人々がパスワードを再利用する最も一般的な理由:追跡するアカウントが多すぎること。
パスワードマネージャーはこれを解決します:
- Bitwarden — オープンソース、無料プランはほとんどのニーズをカバー、すべてのプラットフォームで動作
- 1Password — 洗練されたUI、優れたファミリー/チーム共有
- KeePass — 完全にローカル、クラウドなし、完全なコントロール
パスワードが漏洩したとき
- 使用したすべてのアカウントで即座に変更する
- 影響を受けたアカウントで2FAを有効にする
- **Have I Been Pwned**を確認する — メールアドレスを入力して過去の侵害を確認
- アクティブなセッションを確認し、見知らぬものを取り消す
アカウントタイプ別の推奨事項
金融口座
- 16文字以上、すべての文字種
- 一意のパスワード、再利用しない
- 認証アプリによる2FA(SMSではない)
メール
- 14文字以上 — メールは他のすべてのパスワードをリセットするため、セキュリティの要となります
- 必須の2FA
- ログイン中のデバイスを定期的に確認
ソーシャルメディア
- 12文字以上
- 認証アプリによる2FA — SMSベースの2FAはSIMスワッピング攻撃に脆弱
職場のアカウント
- 会社のポリシーに従う(通常14文字以上)
- 職場のシステムで個人のパスワードを使用しない;退職時に即座に変更
避けるべきよくある間違い
プレーンテキストでパスワードを保存する(passwords.txt、メモアプリ、メールの下書き) — 代わりに暗号化されたパスワードマネージャーを使用する。
チャットやメールでパスワードを共有する — 共有する必要があればBitwarden Sendまたは同様の安全な共有を使用する。
ブラウザだけをパスワードマネージャーとして信頼する — ブラウザは改善されていますが、マスターパスワードを持つ専用マネージャーはより優れた暗号化とクロスプラットフォームサポートを提供します。
日本のガイドライン
日本のIPA(情報処理推進機構、ipa.go.jp)とNISC(内閣サイバーセキュリティセンター)は詳細なパスワードセキュリティガイドを公開しています。日本の企業文化では歴史的にノートにパスワードを書き留めることが奨励されていましたが、IPAは現在パスワードマネージャーの使用を明示的に推奨しています。マイナンバーカードのサービスやオンラインバンキングではますます強固な認証が求められていますが、それらに接続するアカウントは依然としてパスワードに依存しています。
パスワードセキュリティの統計
- ビジネス侵害の**81%**が盗まれたパスワードまたは弱いパスワードを含む (Verizon DBIR)
- **59%**の人々が複数のアカウントでパスワードを再利用している
- 最も一般的なパスワードの**23%**が1秒未満で解読できる
- 平均的なユーザーは100以上のオンラインアカウントを持ち、パスワードが必要
よくある質問
このジェネレーターは本当にプライベートですか?
はい。パスワードを生成しながらブラウザの開発者コンソール(F12)を開き、ネットワークタブを確認してください — 送信されたリクエストがゼロであることがわかります。すべてがローカルで実行されます。パスワードはどのくらいの頻度で変更すべきですか?
理由がある場合:既知の侵害、侵害の疑い、またはアクセス共有後。NISTはもはや定期的な強制ローテーションを推奨していません — 強制的な頻繁な変更は通常、より弱く予測可能なパスワードにつながります。複数のアカウントに同じパスワードを使用できますか?
いいえ。一つの侵害がそのパスワードを共有するすべてのアカウントを露出させます。パスワードマネージャーにより、何百ものアカウントの一意のパスワードを簡単に維持できます。パスワードとパスフレーズ、どちらを使うべきですか?
パスワードマネージャーが代わりに入力してくれるものにはランダムなパスワードを、自分で入力しなければならない数少ないシークレット — マネージャー自体のマスターパスワード、ディスク暗号化、パソコンのログインなど — にはパスフレーズを使うとよい。EFFリストの単語5つで約65ビットのエントロピーとなり、これは4種類すべての文字を使った10文字のランダムパスワードに匹敵し、スマートフォンやテレビのリモコンでもずっと入力しやすい。ランダムなPINを生成できますか?
はい。PINタブで3〜12桁を生成でき、1234、0000、同じ数字の繰り返し、生年のような並びは拒否されます。桁数を通常の4桁から6桁に増やすだけで入力の手間はほとんど変わらないのに、攻撃者が試すべき組み合わせ数は100倍になります。APIキーやアプリケーションのシークレットにも使えますか?
それが鍵タブの役割です:16進数、Base64、英数字のいずれかをバイト単位のサイズで生成できます。32バイトは256ビット鍵で、JWT_SECRETやSECRET_KEY、Webhookの署名鍵として多くのライブラリが「強力なシークレット」と呼ぶ水準です。同じタブで2FAのバックアップコードも生成できます。