ハコツールズ

パスワード生成(ランダム・記号対応)

桁数・大文字小文字・数字・記号を選び、紛らわしい文字を除いてランダムなパスワードを最大20個一括生成。4〜64桁に対応し、暗号用乱数(crypto.getRandomValues)で作ります。

入力した内容やファイルは、この端末のブラウザの中だけで処理します。サーバーには送りません。確かめ方

公開: / 制作・運営: ハコツールズ運営者

使う文字

強度の目安: 非常に強い(文字の種類 84 × 16 桁 = 約 102 ビット、組み合わせは 10 の 30 乗通り)

桁数と使う文字の種類(大文字・小文字・数字・記号)を指定して、ランダムなパスワードをその場で最大 20 個まとめて作る無料ツールです。新しいサービスへの登録、社内アカウントの初期パスワードの発行、Wi-Fi のパスフレーズの決定など、「条件を満たす文字列を今すぐ作りたい」場面で使います。乱数はブラウザに組み込まれた暗号用の乱数生成器(crypto.getRandomValues)で作ります。

0 と O、1 と l と I のように見分けにくい文字を除く設定と、選んだ文字種が必ず 1 字以上含まれる保証があります。「記号を含めること」のような登録フォームの条件に、生成し直さずに一発で合わせられます。

  1. 桁数をスライダーか数値で決めます(4〜64 桁。初期値は 16 桁)
  2. 使う文字の種類にチェックを入れます。サービスが記号を受け付けないときは「記号」を外します
  3. 手書きで控える・口頭で伝える予定があるなら「紛らわしい文字を除く」をオンのままにします
  4. 「パスワードを生成する」を押すと、指定した個数が一覧で表示されます
  5. 使うものの横の「コピー」を押して貼り付けます。気に入らなければもう一度生成します

安全なパスワードの条件は?

強さは「文字の種類数の桁数乗」で決まり、桁数を増やすほうが文字種を増やすより効きます。 総当たりで破るのに必要な試行回数は、使える文字の種類を N、桁数を L とすると N の L 乗通りです。情報量(ビット)に直すと L × log2(N) で、この値が大きいほど安全です。

大文字 26・小文字 26・数字 10・記号 28 の計 90 種類を使った 12 桁なら、組み合わせは 90 の 12 乗 = 10 の 23 乗通り、情報量は約 78 ビットです。同じ強さを英数字 62 種だけで出すには 14 桁(約 83 ビット)あれば足ります。記号を 2 桁分の長さで置き換えられる、と覚えておくと設定を決めやすくなります。

設定文字の種類組み合わせ情報量目安
数字だけ 4 桁(暗証番号)10 種10 の 4 乗通り約 13 ビット弱い
数字だけ 8 桁10 種10 の 8 乗通り約 27 ビット弱い
小文字だけ 8 桁26 種10 の 11 乗通り約 38 ビット弱い
英数字 8 桁62 種10 の 14 乗通り約 48 ビット普通
英数字 12 桁62 種10 の 21 乗通り約 71 ビット強い
英数字 + 記号 12 桁90 種10 の 23 乗通り約 78 ビット強い
英数字 + 記号 16 桁90 種10 の 31 乗通り約 104 ビット非常に強い
英数字 20 桁62 種10 の 35 乗通り約 119 ビット非常に強い

目安の区分は 40 ビット未満を「弱い」、64 ビット未満を「普通」、80 ビット未満を「強い」、80 ビット以上を「非常に強い」としています。米国 NIST のガイドライン(SP 800-63B)は、記号の強制や定期変更よりも十分な長さと漏えい済みパスワードの回避を重視しています。同じ文字列を複数のサービスで使い回さないことが、桁数より先に守るべき条件です。

乱数はどうやって作っている?

ブラウザ標準の crypto.getRandomValues で 32 ビットの乱数を取り、余りが出る範囲の値は捨てて引き直すことで、どの文字も同じ確率で選ばれるようにしています。 ゲームや抽選で使われる Math.random は予測可能性が問題にならない用途向けで、パスワードには向きません。crypto.getRandomValues は OS の乱数源を使う暗号用の生成器で、Chrome・Safari・Firefox・Edge のすべてで使えます。

乱数を文字に割り当てるときに起きやすい偏りも避けています。2 の 32 乗(約 43 億) 通りの乱数を、たとえば 90 種の文字数で割った余りをそのまま使うと、割り切れないぶんだけ小さい番号の文字がわずかに出やすくなります。このツールは割り切れる範囲を超えた乱数を捨てて引き直す方法(棄却サンプリング)で、この偏りをなくしています。

選んだ文字種がそれぞれ 1 字以上入るように、まず各文字種から 1 字ずつ取り、残りを全体から埋めたうえで並べ替えます。並べ替えをしないと「先頭は必ず大文字」のような癖が付いて推測の手がかりになるため、最後に全体をシャッフルしています。

本当に送信していないか確かめるには?

ブラウザの開発者ツールの Network(ネットワーク)タブを開いたまま生成ボタンを押すと、新しい通信が 1 件も起きないことを確認できます。 手順は次のとおりです。

  1. このページで F12 キー(Mac は Command + Option + I)を押して開発者ツールを開きます
  2. 「Network」タブを選び、記録をいったんクリアします
  3. 「パスワードを生成する」を何度か押します
  4. 一覧に新しい行が増えなければ、生成はブラウザの中だけで完結しています

生成した文字列はページの中にしか存在せず、再読み込みすると消えます。ブラウザの履歴やサーバーのログにも残りません。使うものだけをコピーし、不要になった一覧は再読み込みで消してください。

紛らわしい文字を除くと弱くならない?

ほとんど変わりません。除くのは 0 O 1 l I | の 6 字で、全文字種 90 種が 84 種になるだけです。16 桁の情報量は約 104 ビットから約 102 ビットに下がりますが、差は 1 桁伸ばせば埋まります。手書きで控えたり電話で読み上げたりする可能性があるなら、除いておくほうが入力ミスを防げます。

記号の一覧は次の 28 字です。引用符、バックスラッシュ、バッククォートは、コマンドラインや設定ファイルに貼り付けたときに壊れやすいため最初から含めていません。

!#$%&()*+,-./:;<=>?@[]^_{|}~

Chrome や Safari の内蔵機能とどう違う?

ブラウザの「強力なパスワードを提案」は、そのブラウザのパスワード管理に保存することが前提の機能です。 Chrome は Google アカウント、Safari は iCloud キーチェーンに保存され、同じアカウントでログインした端末だけで使えます。登録フォームのパスワード欄にフォーカスしたときだけ出てきて、桁数や記号の有無は選べません。

このツールは保存先を決めつけません。1Password や Bitwarden のような別のパスワード管理ソフトに入れる、社内の配布用に 20 個まとめて作る、記号を受け付けない古いシステム向けに英数字だけで作る、Wi-Fi ルーターのパスフレーズを 63 桁で作る、といった場面で、条件を自分で決めて作れます。

生成したパスワードはどこに保管すればいい?

  • 作ったパスワードは本人だけが見られる場所(パスワード管理ソフト、施錠できる場所に保管するメモ)に控えてください。画面を他人に見せたまま離席しないでください
  • 共有の端末で使った場合は、コピーしたあとにクリップボードへ別の文字列をコピーして上書きしてください

桁数や生成個数に上限はある?

桁数は 4〜64、生成する個数は 1〜20 です。サービス側に桁数や使える記号の制限がある場合は、その条件に合わせて設定してください。

強度の目安が高ければそのパスワードは安全?

強度の目安は総当たりへの耐性を示すもので、同じパスワードの使い回しやフィッシングによる漏えいは防げません。サービスごとに別のパスワードを使い、二段階認証があれば有効にしてください。

よくある質問

パスワードは何桁にすればいいですか?
大文字・小文字・数字・記号を使うなら 12 桁以上、英数字だけなら 16 桁以上が目安です。情報量は桁数 × log2(文字の種類数)で決まり、12 桁の全文字種で約 78 ビット、16 桁で約 104 ビットになります。サービス側に上限がなければ長いほど安全です。
記号は必ず入れるべきですか?
必須ではありません。桁数を増やすほうが効果が大きく、英数字 62 種で 2 桁伸ばせば記号 28 種を足したのとほぼ同じ強さになります。記号を受け付けないサービスでは記号のチェックを外し、そのぶん桁数を増やしてください。
Chrome や Safari の「強力なパスワードを提案」とどう違いますか?
ブラウザの提案機能はそのブラウザのパスワード管理と一体で、提案と同時に保存されます。このツールは桁数・文字種・紛らわしい文字の除外を自分で決めて、別のパスワード管理ソフトや紙に控える用途で使えます。社内アカウントの初期パスワードを 20 個まとめて作る、記号を使えないサービス向けに英数字だけで作る、といった場面に向いています。
このツールをシェア: