パスワード生成ツール
ブラウザ内で動作し、何もアップロードされません
ブラウザの安全な乱数生成器で作るランダムなパスワード、APIキー、トークン。実際のエントロピーも表示します。
Settings
Generated
Generating…
強いパスワードやシークレットとは?
ランダムなパスワードの強さは、エントロピーのビット数で測ります。同じ設定で生成されうるパスワードの数を、2を底とする対数で表したものです。ここで選べる90種類の英字・数字・記号から20文字を選ぶと約130ビット、6桁のPINなら約20ビットです。1ビット増えるごとに、推測する側の手間は2倍になります。
何よりも重要なのは長さです。1文字増えるごとに可能性は文字種の数の分だけ掛け算で増えますが、文字種を1つ増やしても、その数は少ししか増えません。だからこそ、短く凝ったパスワードより長くランダムな文字列のほうが強く、保管場所にはパスワードマネージャーが向いているのです。
APIキー、クライアントシークレット、Webhookの署名用シークレット、トークンも同じです。人が手で入力するものではないので、長く完全にランダムであるべきです。128ビットがよくある最低ラインです。乱数は暗号学的に安全なソースから得る必要があります。このツールはブラウザの crypto.getRandomValues() を使い、Math.random() は決して使いません。
使い方
- 1長さを決め、文字を選びます。A–Z、a–z、0–9、記号、そして自分で入力した追加の文字です。設定を変えるとすぐに新しい値が表示されます。
- 2人が読んだり入力したりするパスワードでは、Leave out look-alikes で
Il1|O0oを除外します。各文字種を最低1回含める必要があるシステムでは、そのオプションを使います。 - 3または、プリセットを選びます。パスワード、読みやすいパスワード、APIキー、16進トークン、PINがあります。
- 4強度の行で、その設定での正確なエントロピーを確認してから値をコピーします。Generate(Ctrl+Enter)で新しい値を作れます。
- 5まとめて作るには How many を設定し(最大1,000)、Copy all か Download(Ctrl+S)を使います。
トラブルシューティング
- システムが一部の記号を受け付けない
- Symbols をオフにして、受け付けられる記号だけを Extra characters に入力し、文字種が減った分、長さを数文字増やしてください。引用符とバックスラッシュは、シェルや設定ファイルの文字列を壊すため、初期設定で除外されています。
- "every selected set" をオンにするとエントロピーが下がる
- 各文字種を必須にすると、どれかが欠けたパスワードが除外されるため、可能なパスワードが少しだけ減ります。16文字以上なら差は1ビット未満ですが、非常に短い値では大きくなります。表示される数値は正確です。
- この設定では生成できません
- 文字種を1つ以上選ぶか、文字を入力してください。各文字種を必ず含める場合は、選んだ文字種の数以上の長さにしてください。
よくある質問
パスワードはどこかに送信・保存されますか?
いいえ。ページの読み込み後にブラウザ内で生成され、送信も保存もされません。このブラウザに記憶されるのは、長さなどの設定だけです。必要な値はパスワードマネージャーやシークレットストアに保存してください。
すべての文字が同じ確率で選ばれますか?
はい。各文字は棄却サンプリングで選ばれるため、よく使われる random % length の方法にある小さな偏りがありません。また、すべての文字種を含める必要があるパスワードは、後から手を加えるのではなく条件を満たすまで引き直すので、有効なパスワードはどれも同じ確率で出ます。
パスワードはどのくらいの長さにすべきですか?
パスワードマネージャーに保存するなら、すべての文字種を使って16文字以上。APIキーやトークンは、少なくとも128ビット(英数字22文字、または16進数32桁など)を目安にしてください。