ToolActToolAct

パスワード生成器

カスタム長と文字タイプで強力なパスワードを生成

パスワード設定
416324864
大文字A-Z
小文字a-z
数字0-9
記号!@#$%^&*
カスタム文字カスタム文字セットを使用
詳細オプション

紛らわしい文字を除外、例:0O、1lI

類似文字を除外i, l, 1, L, o, 0, O
文字で開始コピー&ペーストしやすく
生成ボタンをクリックしてパスワードを作成
パスワード強度
一括生成
「一括生成」ボタンで複数パスワードを生成
履歴
履歴なし

パスワード生成器とは?

パスワード生成器は、ランダムな強力なパスワードを自動的に作成するツールです。暗号学的に安全な乱数生成器を使用し、ユーザーが定義した長さと文字タイプ(大文字、小文字、数字、特殊記号)に基づいて高セキュリティのパスワードを生成します。強力なパスワードはアカウントセキュリティの最初の防衛線であり、ブルートフォース攻撃や辞書攻撃を効果的に防ぐことができます。

使い方

生成ステップ

  1. パスワードの長さを指定します(12文字以上を推奨)
  2. 文字種を選択:大文字、小文字、数字、記号
  3. 紛らわしい文字(0O、1lIなど)を除外するオプションもあります
  4. 「生成」ボタンをクリックし、満足するまで繰り返します

パスワード強度

  • 弱い:8文字未満、または文字種が1種類のみ
  • 普通:8〜11文字で英字と数字の混合
  • 良好:12〜15文字で複数の文字種
  • 強力:16文字以上で全ての文字種を使用

セキュリティのヒント

  • パスワードはすべてローカルで生成され、サーバーに送信されることはありません
  • 異なるウェブサイトには異なるパスワードを使用してください
  • パスワードマネージャーを使ってパスワードを安全に保管
  • 重要なアカウントのパスワードは定期的に変更しましょう
  • パスワードに個人情報を使用しないようにしましょう

利用シーン

厳密な文字ルールでパスワードを生成4〜64文字の長さを指定し、大文字、小文字、数字、記号、カスタム文字プール、除外文字、類似文字の除去、文字で開始するオプションを選択できます。パスワードはローカルで生成・使用され、ページはcrypto.getRandomValuesからエントロピーを取得し、生成された文字列はメモリ上で保持されて目的のアプリケーションにコピーされるまで一切アップロードされません。
アカウント設定やテスト用にバッチ生成現在のルールで5、10、20、50個のパスワードを生成し、バッチリストから個別の結果をコピーできます。simple、medium、strong、PIN形式のプリセットにより、実際の資格情報とテストデータの切り替えが素早く行えます。バッチリストの各値はすべてローカルで生成・使用されるため、同じセッションで使い捨てのフィクスチャと実際のアカウントパスワードをネットワークを一切経由せずに作成できます。
短いローカル生成履歴を保持直近に生成されたパスワードはタイムスタンプ付きでlocalStorageに保存され、ページからクリアできます。セットアップセッション中に便利ですが、履歴の動作上、共有マシンではリストのクリアが重要です。各エントリはローカルで生成・使用されるため、履歴ファイルは唯一のコピーであり、クリアボタンでデバイスから完全に削除されます。
覚えやすいパスフレーズスタイルのパスワードを生成記号を無効にし、長さを20文字前後に設定し、小文字と数字のみを組み合わせると、パスフレーズに近い結果が得られます。ただしパスワードマネージャーで保管してください。長い文字列は記憶用に設計されていません。乱数源はブラウザタブ内にあるため、オフラインや制限の厳しいファイアウォールの背後にあるワークステーションでも同じパスフレーズジェネレーターを使用できます。
対象のパスワードポリシーに合致するテストフィクスチャを作成本番バリデーターが適用しているのと同じ長さ、文字クラス、除外条件を設定し、QA、サインアップフォーム、侵害シミュレーション用に20〜50個のバッチを生成します。ジェネレーターは実際のシステムに対してバリデーションを行わないため、ポリシー自体を再確認してください。各フィクスチャはローカルで生成・使用されるため、同じページでポリシーも生成値もネットワーク経由で漏洩することなく何千もの準拠テストパスワードを生成できます。

仕組み

パスワード生成器は crypto.getRandomValues(new Uint32Array(n)) からランダム性を引き出します。これはOSのエントロピープール(Linuxのgetrandom、WindowsのBCryptGenRandom、macOS/iOSのSecRandomCopyBytes)から暗号学的に安全な擬似乱数値を型付き配列に充填するW3C Web Cryptography APIで定義されたCSPRNGです。これに対し、Math.random()はV8でxorshift128+アルゴリズムを使用しており、出力の小さなサンプルから予測可能であると明確に文書化されており、暗号学的用途には不適切です。 文字プールはユーザーが選択した文字クラスから構成されます:大文字(26文字 A-Z)、小文字(26文字 a-z)、数字(10文字 0-9)、記号(!@#$%^&*()_+-=[]{}|;:,.<>? から32文字)、最大プールサイズは94文字です。カスタム文字セットや除外リスト(i, I, l, L, 1, o, O, 0 を除去する類似文字フィルターを含む)によりプールはさらに絞り込まれます。各パスワード文字は array[i] % pool.length によって選択され、CSPRNG出力が32ビット上で一様分布であり、モジュロバイアス(|pool|が2^32を均等に割り切らない)が256文字未満のプールでは無視できるため(バイアスは0.00000006%未満)、均一な分布が得られます。 パスワード強度は探索空間のサイズで測定されます:プールサイズC、パスワード長Lの場合、可能なパスワードの数はC^L、エントロピーは log2(C^L) = L × log2(C) ビットです。4つの文字クラスを全て有効にした16文字のパスワード(C=94)では、94^16 ≈ 4.4 × 10^31通り、約105ビットのエントロピーとなります。仮に1秒あたり10^12回の推測速度(大規模GPUクラスターがNTLMなどの高速ハッシュに対して出すスループットに相当)で総当たり攻撃を行っても、約4.4 × 10^19秒かかり、宇宙の年齢よりもはるかに長い時間となります。このモデルは攻撃者が全組み合わせをテストする必要があること(辞書やパターンベースのショートカットがないこと)、パスワードがbcryptやArgon2idなどの遅いソルト付きアルゴリズムでハッシュ化されていることを前提としています。 NIST SP 800-63Bは、ユーザーが選択するパスワードには最低8文字、機械生成の資格情報には最低6文字のランダム生成を推奨し、文字セットの文書化を要求しています。生成器の4〜64文字の長さ範囲は、PINコードから高エントロピーの機械資格情報までをカバーします。先頭文字オプションは最初の文字を[A-Za-z]から選択することで、パスワードの先頭が文字であることを要求するレガシーシステムの要件を満たします。

  • CSPRNGソース:crypto.getRandomValues()はOSカーネルのCSPRNG(getrandom/BCryptGenRandom/SecRandomCopyBytes)からエントロピーを取得します。Math.random()(xorshift128+)とは異なり、予測不可能でページからのシード指定ができず、資格情報の生成に適しています。
  • 文字空間の数学:4つのクラスを全て有効にするとプールサイズは94、文字あたりのエントロピーはlog2(94) ≈ 6.55ビット。16文字のパスワードは約105ビットのエントロピーを持ち、長さを32文字に倍増すると約210ビットに増加します。
  • モジュロ選択:array[i] % pool.lengthは32ビットCSPRNG出力を文字インデックスにマッピングします。256文字未満のプールではバイアスが6 × 10^-8 %未満であり、暗号学的に無視できる範囲です。
  • ブルートフォース耐性モデル:1秒あたり10^12回の推測(GPUクラスタースケール)で、16文字・94記号のパスワードの総当たりには約10^19秒かかりますが、これは高速ハッシュを前提とした場合です。コストファクター12のbcryptでは攻撃速度は約10^4回/秒に低下し、8文字のパスワードでも耐性を持ちます。
  • 類似文字の除外:フィルターは{i, I, l, L, 1, o, O, 0}(8文字)を除去し、プールを94から86に減少させます。文字あたり約0.6ビットのエントロピー低下は、手動転記時の利便性向上に対して許容範囲です。
  • NIST SP 800-63B準拠:標準では機械生成シークレットに最低6文字のランダム選択を要求し、文字空間の文書化を推奨しています。生成器のプリセット(Simple 8文字、Strong 20文字)は異なる保証レベルに対応します。
  • localStorage履歴:直近10件の生成パスワードはwindow.localStorageに保存されます。オリジンとブラウザプロファイルにスコープされ、履歴クリアで削除されますが、ディスクレベルのフォレンジックツールではブラウザプロファイルディレクトリ内のプレーンテキストSQLiteデータベースとして保存されるため復元可能です。

使用例

強力なパスワード (複数の文字種を混在)

Kx9#mP2$vL7@nQ4!  -  16 文字、4 種すべて (大文字/小文字/数字/記号)
強度: 極めて高い。毎秒 100 億回試行しても、総当たりには数世紀かかる

PIN コード (4 桁)

8527  -  4 桁の数字
強度: 10,000 通り。レート制限とロックアウトのある端末ロック解除のみに適し、オンラインアカウントには不向き

パスワード強度の比較

8 文字、小文字のみ      : 26^8      ≈ 2.08e11 通り
8 文字、文字種混在      : 94^8      ≈ 6.10e15 通り
16 文字、文字種混在     : 94^16     ≈ 3.7e31 通り
備考: 1 文字増えるごとに鍵空間は 8 倍ではなく 94 倍になる — 文字種の数より長さの方が重要

よくある質問

パスワードはブラウザ内で生成されますか?

はい。このページはWeb Crypto APIのcrypto.getRandomValuesを使用しており、暗号学的に強力なランダムバイトを提供します。パスワードがデバイスから出ることはなく、ログにも記録されず、決定論的なシードからも導出されません。確実を期したい場合は、ページを更新して新しいエントロピーシーケンスを開始してください。

どの長さと文字の組み合わせを選ぶべきですか?

オンラインアカウントには、大文字、小文字、数字、記号を含む16文字以上が現代の最低基準です。マスターパスワード(パスワードマネージャー、暗号化キー)には、20文字以上または6〜7単語のパスフレーズがより安全です。一定の閾値を超えると、文字種の複雑さよりも長さの方が重要になります。

一部のサイトで生成したパスワードが拒否されるのはなぜですか?

一部のサイトは依然として意外な制限を強制しています。最大長(多くは12〜20)、記号不可、特定の記号のみ許可、空白不可などです。ページには文字種の切り替えが用意されているのでルールに合わせられます。問題のあるサイトを報告してください。これらのポリシーは積極的にセキュリティを弱めています。

意図的に避けられている文字はありますか?

「紛らわしい文字を避ける」オプションを有効にすると、生成器は0/O、1/l/I など、紙や付箋から書き写す際に読み間違えやすいペアを除外します。デジタルでのみ使用する場合は、最大エントロピーを得るためにこれを無効にしてください。

長いランダムパスワードはパスフレーズより安全ですか?

同等のエントロピーであれば、どちらも総当たり攻撃に対して同等に強いです。16文字の混合パスワードは、2000語のリストからランダムに選んだ6単語のパスフレーズとほぼ同等です。パスフレーズは入力と記憶が容易で、純粋なランダム文字列はマネージャーから貼り付けやすいです。用途に応じて選んでください。

パスワードマネージャーのマスターキーとして信頼できますか?

はい。ランダム性のソースは、ブラウザがHTTPSキーに使用するのと同じWeb Crypto APIです。とはいえ、極めて高リスクの秘密情報(マスターキー、リカバリーコード)については、信頼チェーンからブラウザを完全に排除するため、サイコロを振る方法(diceware)やオフラインツールを好む人も多いです。

生成したパスワードをここに保存すべきですか?

いいえ。このページはパスワードを保存しません。すぐにパスワードマネージャー(1Password、Bitwarden、KeePass、ブラウザ内蔵マネージャー)にコピーしてください。ページを閉じたり更新したりすると永久に失われます。