パスワード生成ツール

強力なランダムパスワードとパスフレーズ。

このツールについて

選んだ文字を使ったランダムなパスワードや、入力しやすい単語ベースのパスフレーズを生成します。すべてブラウザーの暗号論的に安全な乱数生成器を使い、推定強度がビット数で表示されます。

使い方

  1. 「ランダムな文字」か「パスフレーズ」を選びます。
  2. 長さまたは単語数と、含める文字の種類を設定します。
  3. 推定強度(ビット数)が更新されるのを確認します。
  4. パスワードをコピーするか、「新しく生成」をクリックして別のセットを作ります。

よくある質問

パスワードはどのくらいの長さにすべきですか?
ランダムな文字で 16 文字以上(約 100 ビット)、またはこのツールで 10 語以上のパスフレーズを目安にしてください。約 80 ビットを超えれば、推測できる範囲をはるかに超えています。パスワードマネージャーを使えば覚える必要はありません。
強度のビット数とは何ですか?
攻撃者が必要とする推測の回数を表します。1 ビット増えるごとに手間は 2 倍になります。パスワードがランダムに生成されたことを前提としており、このツールではその前提が成り立ちます。
パスワードはどこかに保存・送信されますか?
いいえ。crypto.getRandomValues を使ってブラウザー内で生成され、ページを閉じると消えます。
パスフレーズとランダムな文字、どちらがよいですか?
パスフレーズは、スマートフォンやテレビなどでも入力しやすく覚えやすいのが利点です。ランダムな文字は、少ない文字数でより高い強度を得られます。強度メーターで、各設定が何ビットになるかを正確に確認できます。
紛らわしい文字が除外されるのはなぜですか?
l、1、I、O、0、o のような文字は、パスワードを読み上げたり、紙から書き写したり、別の画面を見ながら入力したりするときに混同しやすいものです。これらを除外すると文字の種類がわずかに減り、1 文字あたり約 0.1 ビット低下します。パスワードを貼り付けて使うだけなら、オフにしてください。
ランダムな API キーやシークレットトークンを生成するには?
「ランダムな文字」を選んで英字と数字だけにすれば、ヘッダー、URL、設定ファイルで安全に使えるキーになります。長さは 32 以上に設定してください。それで 180 ビットを大きく超えます。コマンドラインでは、openssl rand -hex 32 で同じことができます。サーバーがキーを照合するだけなら、キーはハッシュ化して保存してください。
大文字や数字を加えるとパスフレーズは強くなりますか?
各単語の先頭を大文字にしても、常に同じ方法で行われるため、強度は増えません。ランダムな数字は 6 単語のフレーズで約 9 ビット増えます。7 か所のいずれかに最大 100 通りの値が入るためです。単語を 1 つ増やすと約 8.7 ビット増えるので、両者の効果はほぼ同じで、単語を増やすほうが入力しやすいことも多いです。

パスワードの強度(ビット数)はどう計算されますか?

ランダムに生成したパスワードの強度は、長さに、使える文字の種類数の log2 を掛けたものです。ここでは小文字、大文字、数字、27 種類の記号を合わせて 89 文字あり、1 文字あたり約 6.5 ビットなので、20 文字で約 130 ビットになります。紛らわしい文字を除外すると 6 文字減り、1 文字あたり約 0.1 ビット低下します。この式が成り立つのはランダムなパスワードだけで、人が考えたパスワードには決して当てはまりません。

パスフレーズも単語で同じように計算します。ここの単語リストには短い単語が 422 個あるため、1 単語ごとに約 8.7 ビット増え、6 単語で約 52 ビットになります。これは 7,776 語からなる古典的な Diceware のリスト(1 単語あたり 12.9 ビット)より 1 単語あたりの値が小さいので、同じ強度に達するには単語を増やしてください。強度メーターは、設定を変えるたびにこの計算を行います。

生成したパスワードが拒否されたり、問題を起こしたりするのはなぜですか?

長さを 16 文字や 20 文字に制限したり、クォート、スペース、山かっこなど特定の記号を拒否したりするサイトがあります。長さをサイトの上限まで下げるか、「記号」をオフにして、その分パスワードを数文字長くしてください。英字や数字を 1 文字増やすごとに約 6 ビット増えるため、英数字 22 文字は記号入りの 20 文字より強くなります。

記号は Web サイト以外でも問題を起こします。シェルでは、ダブルクォート内の $ や ! が展開されるため、そうしたパスワードはシングルクォートで囲んでください。.env ファイルでは、# がコメントの開始になったり、$ が変数展開を引き起こしたりします。データベースの接続 URL では、@、:、/ をパーセントエンコードしないと解析が壊れます。エンコードには URL エンコード・デコード・解析を使えます。英字と数字だけにすれば、こうした問題はすべて避けられます。

NIST のパスワードガイドライン: 本当に重要なこと

多くの企業が従う米国政府のガイドライン NIST SP 800-63B は、複雑さより長さを重視しています。2025 年の改訂版では、パスワードが唯一の認証要素の場合は 15 文字以上、多要素認証の場合は 8 文字以上を求め、少なくとも 64 文字までサポートすることを求めています。また、「記号と数字を 1 つずつ」のような規則をやめ、定期的なパスワード変更の強制をやめ、漏洩リストにあるパスワードをブロックするよう求めています。

実践的にまとめると、アカウントごとに一意のランダムなパスワードを使ってパスワードマネージャーに保管し、利用できる場所ではすべて 2 要素目を追加することです。マネージャーのマスターパスワードのように手で入力する必要がある数少ない秘密には、長いパスフレーズを使います。ログイン機能を自分で作るなら、パスワードは Argon2id か bcrypt で保存してください。ハッシュ生成ツールの SHA-256 のような高速なハッシュはチェックサムには適していますが、パスワードの保存には向きません。

うまく動かない、または結果がおかしいですか? このツールの問題を報告