パスワード生成ツール(安全・無料)

🔒 サーバーに送信しない・ブラウザ内で生成

crypto.getRandomValues() を使った暗号学的に安全なランダムパスワードを即時生成。完全ブラウザ完結。

パスワード長: 16 文字
生成本数: 5 本

パスワード生成ツールの使い方

このパスワード生成ツールは、以下の簡単なステップで安全なパスワードを作成できます。

  1. パスワード長を設定する:スライダーを動かして、パスワードの長さを8文字から64文字の範囲で指定します。一般的な用途には16文字以上が推奨されます。
  2. 文字種を選択する:大文字英字(A-Z)、小文字英字(a-z)、数字(0-9)、記号(!@#$%^&*)から使用する文字種をチェックボックスで選びます。特定の記号のみを使いたい場合は「カスタム記号」にチェックを入れ、使用する記号を入力してください。
  3. 生成本数を指定する:一度に1本から10本まで、複数のパスワードをまとめて生成できます。複数のアカウント用にパスワードを用意する場合に便利です。
  4. 「パスワードを生成する」ボタンを押す:設定が完了したらボタンをクリックすると、即座にパスワードが生成されます。生成と同時にパスワード強度(エントロピー)も表示されます。
  5. コピーして利用する:各パスワードの右側にあるコピーボタンをクリックすると、クリップボードに保存されます。そのままパスワードマネージャーやサービスの登録画面に貼り付けてご利用ください。

安全なパスワードとは

安全なパスワードとは、第三者による推測や機械的な解読が極めて困難なパスワードのことです。安全なパスワードを構成する要素として、十分な文字数、多様な文字種、そしてランダム性の3つが重要です。

文字数が長いほど、また使用する文字種が多いほど、パスワードの組み合わせ数は指数関数的に増加します。例えば、小文字英字(26種)のみで8文字のパスワードは約2,080億通りですが、大文字・小文字・数字・記号を含む95種類の文字セットで16文字にすると、約4.4×1031通りという天文学的な組み合わせ数になります。

さらに重要なのがランダム性です。「password123」や誕生日を含むパスワードは、文字数が十分であっても辞書攻撃やソーシャルエンジニアリングによって容易に破られます。人間が「ランダムに」考えたパスワードにも無意識のパターンや偏りが含まれるため、コンピュータによる真のランダム生成が最も安全です。

暗号学的に安全な乱数とMath.random()の違い

JavaScriptには2種類の乱数生成方法があります。Math.random()は擬似乱数生成器(PRNG)であり、内部状態から次の値が予測可能なため、セキュリティ用途には適していません。一方、本ツールが使用するcrypto.getRandomValues()は暗号学的に安全な擬似乱数生成器(CSPRNG)です。

CSPRNGはOSが提供するエントロピープール(ハードウェアの物理的ノイズ、マウスの動き、キーボード入力のタイミングなど)を種として利用します。これにより、生成される乱数列は統計的に偏りがなく、過去の出力から将来の出力を予測することが計算量的に不可能です。Linuxでは/dev/urandom、WindowsではBCryptGenRandomが内部的に使用されます。

パスワードの強度:ブルートフォース攻撃の計算量

パスワードの強度はエントロピー(ビット数)で定量的に評価できます。計算式は次のとおりです:エントロピー = パスワード長 × log2(文字種の数)。

  • 弱(40ビット未満):約1兆通り以下。高性能GPUを使えば数分〜数時間で全探索が可能です。
  • 普通(40〜60ビット):一般的な個人利用には対応できますが、標的型攻撃には脆弱です。
  • 強(60〜80ビット):現代のハードウェアでも全探索に数千年以上かかり、ほとんどの用途で安全です。
  • 非常に強(80ビット以上):宇宙の年齢を超える計算時間が必要であり、量子コンピュータを考慮しても事実上解読不可能です。

具体例として、大文字・小文字・数字・記号(95種)で16文字のパスワードはエントロピー約105ビットとなり、毎秒1兆回の試行が可能なスーパーコンピュータでも解読に約1012年(1兆年)以上を要します。

パスワード管理のベストプラクティス

強力なパスワードを生成するだけでなく、適切に管理することがセキュリティの要です。以下のベストプラクティスを実践してください。

  • パスワードマネージャーを使う:1Password、Bitwarden、KeePassXCなどのパスワードマネージャーを利用して、サービスごとに異なるランダムパスワードを安全に管理しましょう。マスターパスワード1つを覚えるだけで、すべてのパスワードにアクセスできます。
  • パスワードの使い回しをしない:1つのサービスで情報漏洩が発生した場合、同じパスワードを使い回していると他のサービスにも不正アクセスされる「クレデンシャルスタッフィング」攻撃の被害に遭います。必ずサービスごとに固有のパスワードを設定してください。
  • 2要素認証(2FA)を有効にする:パスワードに加えて、TOTP(Google Authenticator等)やセキュリティキー(YubiKey等)による2要素認証を設定することで、パスワードが漏洩しても不正ログインを防ぐことができます。
  • 定期的に漏洩チェックを行う:Have I Been Pwned(haveibeenpwned.com)などのサービスで、自分のメールアドレスやパスワードが過去のデータ漏洩に含まれていないか確認しましょう。
  • パスワードを平文で保存しない:メモ帳やスプレッドシートにパスワードを書き残すことは非常に危険です。必ず暗号化されたパスワードマネージャーを使用してください。

よくある質問(FAQ)

安全なパスワードとは?

安全なパスワードとは、十分な長さ(16文字以上推奨)を持ち、大文字・小文字・数字・記号を含むランダムな文字列です。暗号学的に安全な乱数生成器(crypto.getRandomValues())で生成されたパスワードは予測が事実上不可能であり、ブルートフォース攻撃に対して非常に高い耐性を持ちます。

パスワードの推奨文字数は?

NIST SP800-63Bガイドラインでは最低8文字を推奨していますが、重要なアカウントには16文字以上が望ましいとされています。パスワードマネージャーを使用する場合は24文字以上の完全ランダムなパスワードが理想的です。文字数が増えるほどエントロピー(情報量)が増加し、解読に必要な計算量が指数関数的に増大します。

パスワードマネージャーとは?

パスワードマネージャーは、複数のパスワードを安全に暗号化して一元管理するソフトウェアです。1Password、Bitwarden、KeePassXCなどが代表的です。マスターパスワード1つを覚えるだけで、各サービスごとに異なる強力なランダムパスワードを使い分けることができ、パスワードの使い回しによるリスクを防ぎます。

ランダムパスワードはなぜ安全?

ランダムパスワードは辞書に載っている単語や個人情報を含まないため、辞書攻撃やソーシャルエンジニアリングに対して耐性があります。さらに、crypto.getRandomValues()で生成された乱数はOSのエントロピープールを利用しており、パターンや偏りがないため、攻撃者がパスワードを推測・予測することが事実上不可能です。

このツールで生成したパスワードは外部に漏れませんか?

漏れません。本ツールはすべての処理をお使いのブラウザ内(クライアントサイド)で完結しており、生成されたパスワードがサーバーに送信されることは一切ありません。ネットワーク通信が発生しないため、傍受や漏洩のリスクがありません。