本文へスキップ

パスワード生成ツール

長さと文字の種類を選んでランダムなパスワードを作るか、英単語をつないだパスフレーズを作ります。設定を変えるたびに、推定エントロピー(ビット)と強度の目安もあわせて表示します。

生成方式
長さ: 16
含める文字の種類
ここに残した記号だけがパスワードに使われます。

数字の0と大文字のO、数字の1と小文字のl・大文字のI、縦棒|のように画面で見分けにくい文字を除きます。
一度に1〜20個まで作成できます。

生成結果

オプションを設定すると、ここに結果が表示されます。

入力した内容はこのブラウザの中だけで処理され、サーバーには送信されません。 仕組みを見る

盾、南京錠、鍵、パスワードを表す点で描いたパスワード生成のイメージ

使い方

「生成方式」で「ランダムな文字」か「パスフレーズ(単語の組み合わせ)」のどちらかを選びます。ページを開いた時点ですでに5個できていて、設定を1つでも変えると一覧がまるごと作り直されます。設定はそのままで別の値がほしいときだけ「再生成」を押します。

  • ランダムな文字のとき:「長さ」は8〜128文字(初期値は16文字)です。「含める文字の種類」で「小文字(a-z)」「大文字(A-Z)」「数字(0-9)」「記号」をオン・オフします。最初にオフになっているのは記号だけです。「記号」をオンにすると「記号一覧(編集可能)」の欄を書き換えられます。
  • パスフレーズのとき:「単語数」は3〜10個(初期値は4個)です。「区切り文字」は単語の間に入れる文字で、4文字まで指定でき、初期値はハイフン(-)です。「各単語の先頭を大文字にする」と「末尾に数字を追加(0〜99)」は最初からオンなので、Maroon-Cymbal-Tiger-Harbor-60 のような形になります。
  • まとめて作る数:「一度に生成する個数」は1〜20個です。

「生成結果」の上には、「強度: 非常に強い · 推定エントロピー 約95ビット」のように、いまの設定の強度とビット数が1行で出ます。一覧の値はどれも同じ設定で作ったものなので、どれを選んでも強度は変わりません。1つだけコピーすることも、「すべてコピー」でまとめてコピーすることもできます。「.txtでダウンロード」を押すと、1行に1つずつ書かれた passwords.txt(パスフレーズのときは passphrases.txt)が保存されます。

作った値はどこにも残しません。ページを再読み込みすると別の値に変わるので、使う値はその場でコピーしておいてください。ダウンロードした .txt ファイルにはパスワードがそのまま書かれています。パスワードマネージャーに移したあとは消しておくほうが安全です。

1文字ずつ選ぶ仕組み

ランダムな文字は、次の3段階で作ります。

  1. オンにした文字の種類ごとに、その種類から1文字ずつ先に選びます。数字をオンにしていれば、数字が少なくとも1つは入るのはこのためです。
  2. 残りの文字は、オンにした種類をすべて合わせた文字の集まりから1文字ずつ選びます。
  3. 全体の並びをランダムに混ぜます。先に選んだ文字がいつも先頭に来てしまうのを防ぐためです。

パスフレーズは、英単語256個のリストから互いに異なる単語を「単語数」の数だけ選び、「区切り文字」でつなぎます。

どちらの方式でも、乱数はブラウザの crypto.getRandomValues から受け取ります。前の値から次の値を推測される余地がある Math.random() は使いません。また、受け取った数を文字の種類数で割った余りをそのまま使うと、前のほうの文字がごくわずかに出やすくなります。このツールはそうした偏りを生む数を捨てて選び直し、どの文字も同じ確率で出るようにしています。

推定エントロピーと強度の読み方

エントロピーは、同じ設定で作れるパスワードが何通りあるかをビットで表した値です。1ビット増えるごとに、その数は2倍になります。ランダムな文字の推定エントロピーは「長さ × log2(使える文字の数)」で計算します。小文字・大文字・数字をオンにすると文字は62種類、記号もオンにすると初期設定の記号27個が加わって89種類です。

このツールが付ける強度は次のとおりです。あくまでこのツールが決めた区分で、強度の名前が特定の攻撃に対する安全を保証するものではありません。

強度 推定エントロピー
弱い 40ビット未満
普通 40ビット以上60ビット未満
強い 60ビット以上80ビット未満
非常に強い 80ビット以上

長さごとに画面に出る値は次のようになります。

長さ 小文字・大文字・数字(62種類) 記号あり(89種類)
8文字 約48ビット、普通 約52ビット、普通
12文字 約71ビット、強い 約78ビット、強い
14文字 約83ビット、非常に強い 約91ビット、非常に強い
16文字 約95ビット、非常に強い 約104ビット、非常に強い

文字の種類を増やすより、長さを伸ばすほうがよく効きます。16文字に記号を加えると約8ビット増えますが、記号なしで2文字伸ばすだけでも約12ビット増えます。数字だけにすると8文字で約27ビット(弱い)で、24文字まで伸ばしてようやく「非常に強い」に入ります。「紛らわしい文字を除外(0 O 1 l I |)」をオンにすると62種類が57種類に減り、16文字で約95ビットだったものが約93ビットになります。

この値は推定です。種類ごとに1文字を先に入れる決まりがあるぶん、実際に出る組み合わせは計算より少しだけ少なくなりますが、差が小さいので計算には入れていません。

パスフレーズの単語数と強度

単語リストは256個なので、単語1つが加えるエントロピーは8ビットに少し届きません。同じ単語を2回選ばないため、2つ目の単語は255個、3つ目は254個の中から選ぶことになるからです。「末尾に数字を追加(0〜99)」は約6.6ビットを加えます。「各単語の先頭を大文字にする」と「区切り文字」は決まった規則なので、計算には入れていません。

単語数 数字なし 数字あり
3個 約24ビット、弱い 約31ビット、弱い
4個 約32ビット、弱い 約39ビット、弱い
5個 約40ビット、普通 約47ビット、普通
6個 約48ビット、普通 約55ビット、普通
7個 約56ビット、普通 約63ビット、強い
8個 約64ビット、強い 約70ビット、強い
9個 約72ビット、強い 約78ビット、強い
10個 約80ビット、非常に強い 約86ビット、非常に強い

初期設定(4単語に数字を追加)は約39ビットで「弱い」です。ランダムな文字12文字と同じくらいの強さがほしいなら、8〜9単語が必要です。

単語をつないでパスワードにするやり方は、サイコロで単語を選ぶダイスウェア(Diceware)と考え方が同じです。ただしダイスウェアのリストは7,776語あり、単語1つが12.9ビットになります。ダイスウェアの案内ページは、そのリストを使う場合でも用途によって6単語以上をすすめています。このツールのリストはそれよりずっと小さいので、同じ単語数ならエントロピーは低くなります。単語数は上の表のビット数を見て決めてください。

ランダムな文字とパスフレーズ、どちらを使うか

パスワードマネージャーに保存して貼り付けるだけのアカウントには、ランダムな文字が向いています。16文字あれば「非常に強い」になり、覚える必要がないので読みにくくても困りません。

端末のロック解除やパスワードマネージャーのマスターパスワードのように、自分で覚えて手で打つ場面にはパスフレーズが楽です。その代わり、上の表のとおり単語がいくつも必要になります。

どちらを使うにしても、サイトごとに別の値にしてください。あるサイトから漏れたパスワードを、ほかのサイトのログインにそのまま試してみる攻撃(クレデンシャルスタッフィング)があるため、同じパスワードを使い回していると1か所の漏えいが残りのアカウントにも広がります。「一度に生成する個数」を増やせば、複数のアカウントで使う値を一度に作れます。

参考資料

よくある質問

計算したビット数に端数があるとき、強度はどの値で決まりますか?

画面に表示される、四捨五入したビット数で決まります。小文字・大文字・数字で10文字にすると計算値は59.54ビットで、画面には「約60ビット」と表示され、強度も60ビットにあたる「強い」になります。同じように、数字を付けない10単語のパスフレーズ(79.74ビット)は「約80ビット」で「非常に強い」と表示されます。そのため、画面のビット数をそのまま強度の表に当てはめて確認できます。

登録したいサイトが一部の記号を受け付けないときはどうすればいいですか?

「記号」をオンにしてから、「記号一覧(編集可能)」の欄にそのサイトで使える記号だけを残してください。使われるのは一覧にある文字だけで、同じ文字を2回書いても1つとして数えます。一覧が短くなれば、推定エントロピーもその分だけ計算し直されます。小文字・大文字・数字に加えて、記号を !@# の3つだけにすると文字は65種類になり、16文字で約96ビットです。一覧をすべて消すと「記号一覧が空です。」という案内が出て、結果は作られません。

「紛らわしい文字を除外」はどんなときにオンにするとよいですか?

画面のパスワードを目で読んで別の端末に打ち込むときや、紙に書き写すときにオンにしてください。フォントによっては数字の0と大文字のO、数字の1と小文字のl・大文字のI、縦棒の|がほとんど同じに見え、写し間違いのもとになります。コピーして貼り付けるだけならオンにする必要はありません。オンにすると使える文字が減るので、エントロピーは少し下がります。

パスフレーズを英語以外の言語の単語で作ることはできませんか?

できません。どの言語のページで開いても、同じ英単語256個のリストから選びます。このツールのために選んだやさしい英語の名詞・形容詞・動詞で、リストを差し替えたり自分の単語を入れたりする機能はありません。ほかの言語のキーボード配列が設定されていない端末やログイン画面でもそのまま打ち込めるのは、英単語ならではの利点です。

同じ文字や同じ単語が何度も出ることはありますか?

ランダムな文字では1文字ずつ別々に選ぶので、同じ文字が何度か出ることがあります。だからといって弱いパスワードになるわけではありません。パスフレーズは、1つの中で同じ単語が2回出ないように選びます。一度に複数作るときは1つずつ別々に選ぶため、別のパスフレーズ同士で同じ単語が入ることはあります。

最終更新日: