本文へスキップ

パスワード生成ツールベータ

長さや文字の種類を選んでランダムなパスワードや覚えやすいパスフレーズを作り、推定エントロピーと強度も確認できます。サーバーには何も送信されません。

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

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

生成結果

まだ生成した結果がありません。「生成する」を押してください。

使い方

「生成方式」でランダムな文字かパスフレーズかを選びます。ランダムな文字モードでは長さ(8〜128文字)と含める文字の種類(小文字・大文字・数字・記号)を選び、記号一覧は自由に編集できます。パスフレーズモードでは単語数(3〜10個)と区切り文字、先頭を大文字にするか・末尾に数字を付けるかを選びます。「生成する」を押すと一度に最大20個まで作成でき、それぞれをコピーボタンでそのままコピーできます。

暗号学的な乱数が重要な理由

このツールはブラウザのcrypto.getRandomValuesを使ってパスワードを作ります。一般的なMath.random()は予測可能なアルゴリズム(疑似乱数生成器)で、過去の値がわかれば次の値を推測できる場合があり、セキュリティ用途には向きません。crypto.getRandomValuesはOSが提供する暗号学的に安全な乱数源を使い、各文字を選ぶときに剰余演算の偏りをなくす棄却サンプリング(rejection sampling)を使うことで、すべての文字が完全に同じ確率で選ばれるようにしています。

エントロピーとは

エントロピーは、攻撃者がすべての組み合わせを一つずつ試すと仮定したときにパスワードを言い当てるまでに必要な試行回数をビットで表した値です。ランダムな文字列のエントロピーはおおよそ「長さ × log2(文字プールの大きさ)」で計算され、パスフレーズは単語を重複なく選ぶため実際にはそれよりわずかに小さくなります(例えば256語のリストから4語を選ぶと4 × log2(256) = 32ビットに非常に近い値になりますが、少しだけ低くなります)。このツールは40ビット未満を「弱い」、40〜59ビットを「普通」、60〜79ビットを「強い」、80ビット以上を「非常に強い」と表示します。

パスフレーズ vs ランダムな文字列

ランダムな文字列は同じ長さなら文字の種類が多いほどエントロピーが高くなりますが、人が覚えるのは大変です。パスフレーズは実際の単語をつなげるので読みやすく入力しやすい一方、単語数を増やせばエントロピーをいくらでも高められます(ダイスウェア方式と同じ考え方です)。デバイスのロック解除やパスワードマネージャーのマスターパスワードのように手で入力する機会が多いものにはパスフレーズが向いており、一度保存すれば入力し直すことがほとんどないアカウントにはランダムな文字列が向いています。

パスワードを使い回さない

あるサイトでパスワードが漏れると、同じパスワードを使っている他のすべてのアカウントも危険にさらされます(クレデンシャルスタッフィング)。サイトごとにこのツールで新しく作った別々のパスワードを使い、1PasswordやBitwardenのようなパスワードマネージャーに保存しておけば、毎回覚え直さなくても安全に管理できます。特に重要なアカウントには可能な限り二要素認証(OTP、セキュリティキーなど)も併用してください。

プライバシーについて

生成されたパスワードや入力した文字・単語はすべてこのブラウザの中だけで計算され、どこにも送信されません。サーバーには保存されず、ページを再読み込みしたり閉じたりすると消えます。

参考資料

よくある質問

エントロピー(ビット)とは何で、なぜ重要なのですか?

エントロピーは、パスワードがどれだけ推測しにくいかをビット数で表したものです。ビット数が1増えるごとに、攻撃者がランダムに試す必要がある組み合わせの数が2倍になります。このツールは40ビット未満を「弱い」、40〜59ビットを「普通」、60〜79ビットを「強い」、80ビット以上を「非常に強い」と表示します。

パスフレーズとランダムな文字列、どちらがよいですか?

どちらも十分な長さがあれば安全です。ランダムな文字列は同じ文字数でもエントロピーが高くなりますが覚えにくく、パスフレーズ(単語の組み合わせ)は人が覚えて入力しやすい一方、単語数を増やせば同じようにエントロピーを高められます。デバイスのロック解除やパスワードマネージャーのマスターパスワードのように手入力が多いものにはパスフレーズが、パスワードマネージャーに保存してほとんど自分で入力しないアカウントにはランダムな文字列が向いています。

紛らわしい文字(0, O, 1, l, I, |)はなぜ除外できるのですか?

フォントによっては数字の0と大文字のO、数字の1と小文字のl・大文字のI、縦棒|の見分けがつきにくいことがあり、特に画面に表示されたパスワードを手で別の端末に入力するときに間違いのもとになります。このオプションをオンにするとこれらの文字を除いて生成し、入力ミスを減らせます。

パスフレーズに使われる単語リストはどこから来ていますか?

このツールのために選んだ256個の英単語のリストで、既存のリストをそのまま使ったものではありません。ページの言語に関わらず常に同じ英単語リストから選ばれ、画面の文言とこの説明文だけがそれぞれの言語に翻訳されています。