メインコンテンツへスキップ

~/tools / password-generator

パスワード生成

暗号論的乱数(crypto.getRandomValues)で安全なパスワードを一括生成。強度はエントロピー(bit)の計算式つきで表示します。生成はすべてブラウザ内で完結し、結果はどこにも送信・保存されません。

※ 最低1文字保証は、条件を満たすまで生成し直す方式(リジェクトサンプリング)なので偏りは生じません。

生成結果

強度: - エントロピー - bit

計算式: -

目安: 40bit未満=弱い / 40〜59bit=普通 / 60〜79bit=強い / 80bit以上=非常に強い。 ログイン画面への総当たり(オンライン攻撃)はレート制限されるため比較的低い強度でも耐えますが、漏えいしたハッシュを手元で総当たりされるオフライン攻撃を想定するなら80bit以上を推奨します。

※ 生成はすべてお使いの端末のブラウザ内で行われます。生成結果はサーバーへの送信もlocalStorageへの保存も一切せず、ページを閉じれば消えます。

使い方

  1. 1. 長さ(8〜64文字)と使う文字種(英大文字・英小文字・数字・記号)を選びます。記号は入力欄で自由に増減できます。設定を変えるたびに自動で再生成されます。
  2. 2. 一覧から気に入ったものの「コピー」ボタンを押してクリップボードへ。どれもピンとこなければ「全再生成」で作り直せます。手入力する予定があるなら「紛らわしい文字を除外」をオンにしてください。
  3. 3. 覚えて使うパスワードには「パスフレーズ」タブが便利です。単語数と区切り文字を選ぶと、英単語をつないだ読みやすいフレーズを生成します。強度欄のエントロピーと計算式で強さを確認できます。

よくある質問

このツールで作ったパスワードは安全ですか?

はい。乱数にはブラウザ標準の暗号論的乱数生成器(crypto.getRandomValues)を使い、剰余バイアスを避けるリジェクトサンプリングで文字を選んでいます。生成処理はすべてブラウザ内のJavaScriptで完結し、通信は発生しません。結果はサーバーにもlocalStorageにも保存されず、ページを閉じれば消えます。静的ページなので、ブラウザの開発者ツールからソースコードを直接確認することもできます。

良いパスワードの条件は何ですか?

最も効くのは「長さ」です。強度は組み合わせの総数(エントロピー)で決まり、文字種を1種類増やすより数文字長くする方が効果が大きいことが多いです。加えて、辞書に載っている単語そのままや誕生日・名前などの個人情報を避け、機械的なランダム生成にすることが重要です。本ツールは設定に応じたエントロピーを計算式つきで表示します。

結局いちばん危ないのは何ですか?

パスワードの使い回しです。どれだけ強いパスワードでも、どこか1つのサービスから漏えいすれば、同じ組み合わせで他のサービスにログインを試される「リスト型攻撃」で芋づる式に破られます。サービスごとに別のランダムなパスワードを使い、記憶の限界はパスワードマネージャ(ブラウザ内蔵のものでも可)に任せるのが現実的な最適解です。

「紛らわしい文字を除外」は何のためですか?

小文字のl・数字の1・大文字のI、大文字のO・数字の0・小文字のoなど、フォントによって見分けにくい文字を候補から外すオプションです。紙にメモして手入力する場面での打ち間違いを防げます。候補が減るぶんエントロピーはわずかに下がるので、パスワードマネージャに保存してコピーで使うだけなら除外は不要です。

ランダム型とパスフレーズはどちらを使うべきですか?

パスワードマネージャに保存してコピーして使うなら、短くても強いランダム型が向いています。逆に、PCのログインやマスターパスワードのように「覚えて手で打つ」必要があるものは、単語をつないだパスフレーズの方が長さを稼ぎやすく実用的です。本ツールの内蔵リストは200語なので1語あたり約7.6bitです。本家Diceware(7776語・1語約12.9bit)より低いため、パスフレーズは語数を多めにしてください。