パスワード生成器
無料オンラインパスワード生成器。Web Cryptoの安全な乱数ソースに基づいて、強力なランダムパスワード、覚えやすいパスフレーズ、数字PINを生成します。強度チェック、混同しやすい文字の除外、一括エクスポートに対応。ブラウザのローカルで生成され、アップロードはゼロ。
関連おすすめ
安全なパスワード生成器とは何ですか?
パスワード生成器は、ランダムで予測不可能なパスワードを生成するツールです。人がデザインしたパスワードとは異なり、真のパスワード生成器は**暗号論的に安全な疑似乱数生成器(CSPRNG)**を使用して指定された文字プールから文字をランダムに抽出し、人がパスワードを設定する際の固有の予測可能なパターン(名前+誕生日、qwertyのようなキーボードの連続入力、会社名+年など)を回避することで、クレデンシャルスタッフィング、辞書攻撃、ブルートフォースのリスクを大幅に低減します。
**なぜ Math.random() を使ってはいけないのか**:通常の疑似乱数生成器は内部状態が少量の出力から逆推定でき、攻撃者が後続の「ランダム」な数を予測できる可能性があります。このツールはブラウザのWeb Crypto APIであるcrypto.getRandomValues()を使用しており、オペレーティングシステムレベルのCSPRNG(Linuxのgetrandom、macOSのSecRandomCopyBytes、WindowsのBCryptGenRandomなど)を呼び出し、生成される乱数は暗号学的ランダム性テストに合格した予測不可能なものです。
**パスワード強度の核心はエントロピー(Entropy)です**:エントロピー = log₂(文字プールサイズ^パスワード長)、単位はbitです。例えば94個の印刷可能なASCII文字からランダムに選択された16文字のパスワードの場合、エントロピーは約104 bitであり、これは攻撃者が正しいパスワードを見つけるために平均で2¹⁰³回の試行が必要であることを意味します—毎秒1兆回試行しても、約2000億年かかります。
**覚えやすいパスフレーズ(Passphrase)**:ランダムに選択された複数の単語で構成され(例:Brave-Cloud-Star42)、ランダムパスワードより「単純」に見えますが、単語が真にランダムに選択されていれば総エントロピーは60 bit以上に達し、ほとんどのシナリオで十分に安全であり、同程度の強度のランダムパスワードよりもはるかに記憶しやすくなります。これはXKCD #936の有名なコミックとDicewareメソッドの中心的な考え方です。
**すべてのパスワードはブラウザのローカルで生成され**、いかなるサーバーにも送信されません。このツールは同時に強度チェックも提供します:エントロピー計算、ブルートフォース時間の推定、弱いパスワードパターンの検出(重複文字、連続した数字/文字、一般的な弱いパスワードのマッチング)により、生成されたパスワードの実際の安全強度を理解するのに役立ちます。
ユースケース
- 新規アカウント登録時に強力なランダムパスワードを生成し、エントロピーとクラック時間を確認してアカウントの安全を確保
- チームやテスト環境のために一時的なパスワードを一括生成し、迅速に配布
- 人が記憶する必要のあるWi-Fiパスワードやデバイスパスワード用に覚えやすいパスフレーズを生成
- デバイスPINの設定、管理アカウントの初期化、パスワードのリセット
- 弱いパスワードを、推測されやすい人為的なパスワードからランダムで高強度のパスワードに置き換え
使い方
- パスワードモードを選択:ランダムパスワード、覚えやすいパスフレーズ、または数字PIN
- パスワードの長さと文字セットオプションを設定(16文字以上を推奨)。混同しやすい文字の除外を有効にできます
- 強度チェック結果を確認:エントロピー、クラック時間の推定、弱いパスワードの検出
- パスワードをコピーするか、TXTファイルを一括エクスポートして登録、リセット、配布に使用
特徴
- 安全なランダム生成:ブラウザのWeb Crypto API(crypto.getRandomValues)の暗号論的に安全な乱数ソースに基づき、予測不可能なランダムパスワードを生成
- 3つのパスワードモード:ランダムパスワード、覚えやすいパスフレーズ(単語の組み合わせ)、数字PINの3つのモードをサポートし、異なるセキュリティレベルに対応
- 完全な強度チェック:文字プールサイズ、エントロピー計算、弱いパスワードのヒット検出、重複/連続文字のリスク、ブルートフォース時間の推定を表示
- 混同しやすい文字の除外:0/O/1/l/Iなどの混同しやすい文字を除外でき、手動入力や電話での口述シナリオに適しています
- 一括生成・エクスポート:5/10/20個のパスワードを一括生成し、TXTをワンクリックでダウンロード。チームの配布やテスト環境の初期化に便利
- ローカル生成・アップロードなし:すべてのパスワードはブラウザのローカルで生成され、いかなるサーバーにも送信されません
ランダムパスワード vs 覚えやすいパスフレーズ vs 数字 PIN:どれを選ぶべきか?
3つのパスワードモードにはそれぞれトレードオフがあります。間違ったモードを選ぶと、覚えられないか、簡単に盗まれるか、そもそも使用場面に合いません。「誰が記憶し、誰が入力し、誰が保存するか」に基づいて選ぶことで、多くの回り道を避けられます。
| モード | 選ぶ際の典型的な問い | セキュリティ強度 | 使いやすさ | 典型的なユーザー |
|---|---|---|---|---|
| ランダムパスワード | 「私は手入力せず、パスワードマネージャーに自動入力させる」 | 高(16文字で ~104 bit に達する) | 悪い(覚えられないためマネージャーが必須) | メインのメール、銀行、ソーシャルアカウント、APIキー |
| 覚えやすいパスフレーズ | 「口頭で伝えられ、手入力もでき、かつ十分に安全である必要がある」 | 中高(5-6語のDiceware ≈ 64-77 bit) | 良い(人間が読め、発音できる) | マスターパスワード、Wi-Fi、複数のデバイスで入力が必要なパスワード |
| 数字 PIN | 「0-9のみ、デバイスの制限による」 | 低(6桁でわずか~20 bit、10桁でも~33 bit) | 良い(数字キーパッドで入力できる) | デバイスのロック画面、銀行カードPIN、ワンタイム認証コード |
Best Practices
生成後はすぐにパスワードマネージャーに保存し、長時間画面上に残さない
新しく生成された強力なパスワードは「完全な平文」状態であり、クリップボード、画面、ブラウザの履歴に留まるのはすべてリスクです。生成 → すぐにターゲットサイトに記入 → クリップボードをクリア、3つのステップ間に他の作業を挟まないでください。**絶対に**生成したパスワードのスクリーンショットをアルバムに保存しないでください。紙に書いてから写真を撮って他人に送るのはもってのほかです。本ツールのパスワードは現在のページにのみ存在し、更新またはページを閉じると失われるため、まず保存場所を準備してから生成をクリックしてください。
生成されたパスワードはサーバーにアップロードされますか?マスターパスワードには「長い覚えやすいパスフレーズ」、他のアカウントには16-20桁のランダムパスワード
階層化戦略:マスターパスワード(パスワードマネージャーのロック解除)は人間が記憶でき、かつ十分な強度が必要 → 5-6語のDiceware覚えやすいパスフレーズを選択。他の99%のウェブサイト/サービスには16-20桁のランダムパスワード + パスワードマネージャーの自動入力を使用。**絶対に**すべてのウェブサイトに覚えやすいパスフレーズを使わないでください(覚えられない、弱体化しやすい)。また、**絶対に**マスターパスワードにもランダムパスワードを使わないでください(あなたはそれを書き留め、セキュリティがゼロになります)。これはパスワード管理の核心的な階層化思想です。
パスワードはどのくらいの長さが安全ですか?ランダムパスワードと覚えやすいパスフレーズはどちらが安全ですか?人が手入力する必要がある場合のみ混同しやすい文字を除外する
0/O/1/l/Iなどの混同しやすい文字を除外すると、文字プールサイズが大幅に縮小されます(同じ長さでエントロピーが5-10 bit減少)。**人が手入力、電話で口頭伝達、印刷配布する必要がある場合のみ**有効にすることを推奨します。パスワードがパスワードマネージャーでのみ使用される場合、すべての印刷可能な文字を保持することでより高いエントロピーを得られます。簡単な判断方法:「このパスワードはいずれ指で打ち出す必要があるか?」—— 必要なら除外、不要なら除外しないでください。
なぜ混同しやすい文字(0/O/1/l/I)を除外するのですか?一括生成はテスト/配布シナリオにのみ使用し、本番アカウントには同じ方法を使用しない
5/10/20個のパスワードを一括生成するワークフローは、主に次の場合に適しています:テスト環境の初期化、一時アカウントの配布、招待コードの生成、APIキーの使い捨て出力。**一括生成の結果から本番アカウントに再利用しないでください**——一括生成されたパスワードは同じルールで生成され、特徴が明白(文字セット、長さ、生成器タイプ)であり、あるアカウントが漏洩すると攻撃者は他の一括パスワードの構造の違いを推測できます。本番アカウントのパスワードは個別に生成し、個別に保存してください。
ローカル生成、アップロードなし新しいパスワードは2FAと組み合わせて初めて真に安全
どれほど強力なパスワードでも、フィッシング、キーロガー、パスワードデータベースの漏洩、通信事業者の内部関係者に対してはすべて無力です。**重要なアカウント(メール、銀行、ソーシャル、クラウドストレージ)は二要素認証(2FA)を有効にする必要があります**。TOTP(Google Authenticator / Authy)> ハードウェアキー(YubiKey)> SMS。**SMS 2FAの使用は避けてください**(SIMスワップ攻撃で回避可能)。強力なパスワード + 2FA + パスワードマネージャーの3つはどれが欠けても不可で、2FAはパスワード漏洩後の最後の砦です。
NIST SP 800-63B - デジタルアイデンティティ認証ガイドライン漏洩したパスワードはまずHIBPでチェックしてからリセットを判断
あるパスワードの漏洩が疑われる場合(ニュースでウェブサイトが侵害されたのを見た、フィッシングメールを受信した等)、すぐにパスワードを変更しないでください——まずHave I Been Pwned(HIBP)のPwned Passwords APIでこのパスワードが実際に漏洩データベースに含まれているかをチェックしてください。HIBPはk-匿名APIを提供しており、本ツールは将来的に統合を検討します。現在は手動でhaveibeenpwned.com/PasswordsでSHA-1の先頭5文字でクエリできます。データベースに含まれていると確認された場合にのみ緊急変更が必要であり、漏洩していないパスワードを「安心感」のために強制変更する必要はありません(NISTは定期的なパスワード変更を明確に推奨していません)。
Have I Been Pwned - パスワード漏洩チェックよくある質問
なぜ Math.random() ではなく Web Crypto API を使用するのですか?
Math.random() は汎用の疑似乱数生成器であり、セキュリティシナリオ向けに設計されていません。内部状態が逆推定される可能性があります。crypto.getRandomValues() はオペレーティングシステムの暗号論的に安全な乱数ソース(CSPRNG)を使用しており、生成される乱数は予測不可能で、パスワードや鍵などのセキュリティシナリオに適しています。
生成されたパスワードはサーバーにアップロードされますか?
いいえ。すべてのパスワードはブラウザのローカルで生成され、強度分析、エントロピー計算、クラック時間の推定もすべてローカルで完了します。開発者ツールのネットワークパネルを開くと、外部へのリクエストがゼロであることを確認できます。
パスワードはどのくらいの長さが安全ですか?
大文字小文字+数字+記号を含めて少なくとも12文字以上を推奨します。16文字のランダムパスワードは現代の計算能力ではブルートフォースに数億年かかります。長さが1文字増えるごとに、探索空間は指数関数的に増加します。上記のクラック時間テーブルを参照してください。
ランダムパスワードと覚えやすいパスフレーズはどちらが安全ですか?
同じ長さではランダムパスワードの方がエントロピーが高くなります。ただし、覚えやすいパスフレーズ(4〜6個のランダムな単語で構成)も総エントロピーが十分に高く(~60bit以上)、記憶しやすいため、手動入力が必要なシナリオに適しています。重要なのは、自分で作ったフレーズではなく、真にランダムに選択された単語であることです。
なぜ混同しやすい文字(0/O/1/l/I)を除外するのですか?
これらの文字は一部のフォントでは区別が難しく、入力ミスの原因となります。パスワードを手動で入力したり、電話で口述したり、印刷して配布する必要がある場合は、除外オプションを有効にすることを推奨します。パスワードマネージャーのみで使用する場合は、すべての文字を保持することでより高いエントロピーを得られます。
定期的にパスワードを変更する方が安全ですか?
NISTの最新ガイドライン(SP 800-63B)では、パスワードが漏洩したことが確認されない限り、定期的なパスワード変更は推奨されなくなりました。定期的な強制変更は、ユーザーが弱いパスワードを選択したり書き留めたりする原因になります。より良い方法は、長いランダムパスワード+パスワードマネージャー+二要素認証(2FA)を有効にすることです。
パスワードエントロピー(Entropy)とは何ですか?
エントロピーはパスワードの予測不可能性を測る指標で、単位はbitです。エントロピー = log₂(文字プールサイズ^パスワード長)。例えば、94個の印刷可能なASCII文字からランダムに選択された16文字のパスワードの場合、エントロピーは log₂(94¹⁶) ≈ 104 bit となります。エントロピーが高いほど、ブルートフォースが困難になります。
用語集
- CSPRNG(暗号論的に安全な疑似乱数生成器)
- Cryptographically Secure Pseudo-Random Number Generator。厳格な暗号学的ランダム性テストに合格した乱数生成器。出力は予測不可能であり、攻撃者が多くの過去の出力を知っていても将来の出力を推測することはできません。ブラウザのWeb Crypto APIは内部的にCSPRNGを使用しています。
- パスワードエントロピー(Password Entropy)
- パスワードの予測不可能性を測る指標で、単位はbit。計算式:エントロピー = log₂(N^L)、ここでNは文字プールサイズ、Lはパスワード長です。エントロピーが高いほど、ブルートフォースが困難になります。一般的に60 bit以上が安全、100 bit以上が非常に強力とされます。
- ブルートフォース攻撃(Brute Force Attack)
- 可能なすべての文字の組み合わせを試してパスワードを推測する攻撃方法。防御方法は、組み合わせ数が物理的に数え上げられないほど大きくなる十分に長いランダムパスワードを使用することです。
- 辞書攻撃(Dictionary Attack)
- 一般的なパスワードのリスト(123456、password、qwertyなど)を使用して推測する攻撃方法。大多数のユーザーが一般的な弱いパスワードを使用しているため、ブルートフォースよりもはるかに効率的です。ランダムに生成されたパスワードは辞書攻撃に対して自然に免疫があります。
- クレデンシャルスタッフィング(Credential Stuffing)
- 1つのウェブサイトから漏洩したユーザー名とパスワードを使用して、他のウェブサイトへのログインを試みる攻撃。防御方法は、ウェブサイトごとに一意のパスワードを使用し、Have I Been Pwnedでパスワードが漏洩していないか確認することです。
- パスフレーズ(Passphrase)
- 複数のランダムな単語で構成されるパスワード/フレーズ。ランダムな文字のパスワードと比較して、単語のフレーズは記憶しやすく、単語数が十分であればエントロピーも同様に高くなります。Dicewareは最も有名なパスフレーズ生成方法で、7772個の単語リストからサイコロを使用してランダムに選択します。
- Diceware
- Arnold Reinholdが1995年に考案したパスフレーズ生成方法で、5つのサイコロを振って(7776個の単語リストから)1つの単語を決定します。6つのDiceware単語のエントロピーは約77 bitであり、ブルートフォースに対して十分な安全性があります。
- NIST SP 800-63B
- 米国国立標準技術研究所が発行したデジタルアイデンティティ認証ガイドラインで、パスワードセキュリティ分野で最も権威のある参考文献です。2017年の更新後は、定期的なパスワード変更や特殊文字の強制を推奨しなくなり、代わりにパスワードの長さ、ブラックリスト検出、多要素認証を重視しています。
- 二要素認証(2FA/MFA)
- パスワードに加えて2番目の認証方式(携帯電話の認証コード、TOTP、ハードウェアキーなど)を要求することで、パスワードが漏洩してもアカウントの安全を保護します。NISTはすべての重要なアカウントで2FAを有効にすることを推奨しています。
- 弱いパスワードのブラックリスト
- 公に漏洩したり、非常に一般的であったり、予測可能なパターンを含むパスワードのリスト。例:123456、password、admin、qwertyなど。NISTは登録時やパスワード変更時にブラックリストに含まれていないか確認することを推奨しています。
パスワード長とクラック時間の推定(大文字+小文字+数字+記号を含む)
| パスワード長 | エントロピー(bit) | 組み合わせ数 | ブルートフォース時間(1兆回/秒) | 安全評価 |
|---|---|---|---|---|
6文字 | ~37 | 約1390億 | < 1秒 | ❌ 非常に弱い |
8文字 | ~52 | 約 2.2×10¹⁴ | 約2.5日 | ❌ 弱い |
10文字 | ~65 | 約 3.7×10¹⁸ | 約116年 | ⚠️ 普通 |
12文字 | ~78 | 約 6.1×10²² | 約193万年 | ✅ 強い |
16文字 | ~104 | 約 6.3×10³⁰ | 約2000億年 | ✅✅ 非常に強い |
20文字 | ~131 | 約 6.7×10³⁸ | 宇宙年齢の億億倍 | ✅✅✅ 破れない |
3つのパスワードモード比較
| モード | フォーマット例 | 典型的なエントロピー | 記憶しやすさ | 推奨シナリオ |
|---|---|---|---|---|
| ランダムパスワード | xK9#mP2$vL8@nQ4! | 1文字あたり~6.5bit | 悪い | パスワードマネージャーに保存するマスターパスワード、データベースパスワード、APIキー |
| 覚えやすいパスフレーズ | Brave-Cloud-Star42 | 1単語あたり~10bit | 良い | 人が記憶する必要のあるWi-Fiパスワード、ログインパスワード |
| 数字PIN | 482917 | 1数字あたり3.3bit | 良い | デバイスのロック画面、銀行カードPIN、ワンタイム認証コード |
Authoritative References
- ReferenceNIST SP 800-63B - デジタルアイデンティティガイドライン
- ReferenceOWASP パスワードセキュリティチートシート
- ReferenceMDN Web Docs - crypto.getRandomValues()
- ReferenceWikipedia - パスワード強度
- ReferenceHave I Been Pwned - パスワード漏洩チェック
- 色覚シミュレーター
- カラーコンバーター
- .htaccess→Nginx変換ツール
- SQL 変換ツール
- Cookieパーサー
- Cron式ジェネレーター
- Cron式バリデーター
- CSSフォーマッター
- CSS圧縮
- CSV→Excel変換
- 通貨変換
- 差分チェッカー
- ファビコンジェネレーター
- XMLフォーマッター
- 16進数変換ツール
- HTMLフォーマッター
- HTML圧縮
- HTML→Markdown変換
- MarkdownからHTML変換
- JavaScript フォーマッター
- JS圧縮
- JSXフォーマッター
- JSX 圧縮
- キーワードのクラスタリング
- Lorem Ipsum ジェネレーター
- Markdown テーブルジェネレーター
- Meta Tag ジェネレーター
- パスワード生成器
- パスワード強度チェッカー
- QRコード・バーコードジェネレーター
- 正規表現テスター
- Slugジェネレーター
- SQLビルダー
- SQL フォーマッター
- 文字数カウント
- 時間ツール
- TSフォーマッター
- TS圧縮
- TSXフォーマッター
- TSX圧縮
- Unix タイムスタンプ変換
- UUID ジェネレーター
- YAMLフォーマッター
- 大文字と小文字の変換