パスワードジェネレーター
暗号学的に安全なパスワードを生成。長さと文字セットをカスタマイズ、エントロピー計測付き。無料、ブラウザ内で処理。
- ブラウザ内で処理
- データはブラウザ外に出ません
- 無料 · 登録不要
WeChat でスキャンしてシェア
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。
IPA の目安をこのツールの設定で確かめる
IPA の「日常における情報セキュリティ対策」は、「企業・組織」の利用者向けと「個人」向けの「パスワードの適切な設定と管理」で「大小英字、数字および記号を混在させて最低でも10文字にしてください。」と書いています(管理者向けの項では、「システム管理等で使用するパスワード」について同じ趣旨を述べています)。同じく IPA の「チョコっとプラスパスワード」は、「数字・英大文字・英小文字を組み合わせてできるだけ長い文字数(15桁程度)」で、より安全にしたい場合は記号を追加する、としています。この 2 つをそのままこのツールの設定にすると、強度表示は次のようになります。
| 目安 | このツールの設定 | 強度表示 |
|---|---|---|
| 大小英字・数字・記号で最低 10 文字 | 4 種類すべて、長さ 10 | 普通 (65 bits) |
| 数字・英大文字・英小文字で 15 桁程度 | 記号を外す、長さ 15 | 強い (89 bits) |
| (参考)このツールの既定値 | 4 種類すべて、長さ 20 | とても強い (129 bits) |
「最低でも10文字」はあくまで下限で、記号まで混ぜても強度表示は「普通」です。記号を使わない 15 文字のほうが、記号入りの 10 文字より 25 ビットほど強くなります。文字の種類を増やすより、長さを増やすほうが効くということです。生成するパスワードは毎回違いますが、強度表示の数字は長さと文字プールだけで決まるので、上の表と同じになります。
なお、4 種類すべてを選んでも、各文字種が必ず 1 文字以上入るわけではありません。長さ 10 だと、約 37.4% のパスワードはどれか 1 種類(多くは数字)を含みません。「4 種類を混在させること」をチェックするサイトでは、そのまま登録できないことがあります。そのときは「生成」を押し直すか、長さを 16 以上にしてください。
強度表示の計算方法
強度表示は、パスワードが「複雑そうに見えるか」を判定しているのではありません。選んだ文字プールから 1 文字ずつ同じ確率で選ぶので、作れるパスワードの数は「プールの文字数の長さ乗」で、ビット数は 長さ × log2(プールの文字数) です。5 段階の境界は固定で、40 ビット未満が「とても弱い」、40〜59 が「弱い」、60〜79 が「普通」、80〜99 が「強い」、100 以上が「とても強い」です。数字の後ろの単位はどの言語のページでも bits と表示します。
プールの文字数は、大文字 26、小文字 26、数字 10、記号 26 の合計です。4 種類すべてで 88 文字、そこから紛らわしい 0・O・l・1・I を除くと 83 文字になります。
記号が使えないサイトの場合
「半角英数字のみ」のように記号を受け付けないサイトでは、「記号」のチェックを外します。プールが 62 文字になり、1 文字あたりのビット数は約 6.46 から約 5.95 に下がりますが、数文字伸ばせば取り戻せます。
- 英大文字・英小文字・数字、長さ 16:
強い (95 bits) - 英大文字・英小文字・数字、長さ 20:
とても強い (119 bits)。4 種類 16 文字(約 103 ビット)より強くなります。
「数字を含めてください」と言われることもあります。4 種類すべてを選んだ場合、数字が 1 文字も入らない確率は、長さ 20 で約 9%、長さ 12 で約 24% です。数字は 10 文字しかなく、4 種類の中でいちばん少ないため、欠けやすいのはほとんど数字です。
制限
- 長さは 4〜128。範囲外の値は 4 または 128 に補正します。0 や空欄の場合は 20 になります。
- 文字種ごとの「1 文字以上」は保証しません。文字は独立に選ぶため、数字や記号が入らないことがあります。必須にしているサイトで断られたら、生成し直してください。
- 記号は ASCII の 26 個で固定です。記号を自分で指定したり、特定の記号だけを外したりはできません。
- パスフレーズは作れません。単語を並べる方式(Diceware など)ではなく、文字のパスワードだけを生成します。
- bcrypt は先頭 72 バイトまで。サイトが bcrypt でパスワードを保存している場合、72 文字を超えた部分は効きません。bcrypt のハッシュを作るには Bcrypt ハッシュ生成・検証を使ってください。
- 何も保存しません。結果はどこにも書き込まないので、タブを閉じればパスワードは残りません。ページを離れる前にパスワードマネージャーへ保存してください。
パスワード管理のポイント
- サービスごとに別のパスワードを使います。1 つのサービスから漏れた ID とパスワードは、ほかのサービスでも試されます。全部を別々にするにはパスワードマネージャーが現実的です。
- 名前、誕生日、電話番号などの個人情報は、一部でもパスワードに入れないでください。
- パスワードの強さに関係なく、使えるところでは 2 段階認証を有効にします。2段階認証コード生成ツール(TOTP)で、認証アプリの 6 桁のコードがどう計算されるかを確認できます。
FAQ
生成したパスワードは保存・送信されますか?
いいえ。パスワードはブラウザ内で Web Crypto API を使って生成し、サーバーに送信することも、ブラウザのストレージに書き込むこともありません。このページは Google Analytics と AdSense を読み込みません。タブを閉じればパスワードは残りません。
暗号学的に安全な乱数を使っていますか?
はい。各文字は window.crypto.getRandomValues()(ブラウザが提供する暗号学的に安全な乱数源)から選びます。一部の文字だけがわずかに出やすくなる 32 ビット値(剰余による偏り)は捨てて引き直すので、選んだ文字プールのどの文字も同じ確率で出ます。
パスワードの長さはどれくらいにすべきですか?
NIST SP 800-63B は、パスワードだけで認証する場合は 15 文字以上、多要素認証の一部として使う場合は 8 文字以上を求めています。既定の 88 文字のプールでは、16 文字で約 103 ビット、20 文字で約 129 ビットです。パスワードマネージャーに保存すれば、長くても覚える必要はありません。
サイトに「数字を含めてください」と言われて登録できませんでした。なぜですか?
各文字は選んだ文字種の中から独立に選ぶため、文字種ごとに 1 文字以上入る保証はありません。4 種類すべてを選んで 20 文字にした場合、約 9% のパスワードには数字が入りません。もう一度「生成」を押すか、長さを伸ばしてください。
どの記号が使われますか?
26 個です:! @ # $ % ^ & * ( ) - _ = + [ ] { } | ; : , . < > ?。引用符、バックスラッシュ、スラッシュ、バッククォート、チルダ、空白は使わないので、シェルのコマンドや JSON、設定ファイルに貼り付けてもエスケープは不要です。