強力なランダムパスワードが生成される仕組み
このツールでできること
このツールは、有効にした文字種——大文字・小文字・数字・記号——を組み合わせ、4文字から128文字までの任意の長さでランダムなパスワードを組み立てます。各文字は、多くの間に合わせスクリプトが使う予測可能なMath.randomではなく、ブラウザの暗号学的に安全な乱数源であるcrypto.getRandomValuesから取り出されます。生成結果は強度メーターが「弱い」「普通」「強い」で評価し、直近の履歴が残るため、どれを採用するか選ぶあいだ手元に置いておけます。
どんなときに使うか
アカウント、データベース、APIキー、Wi-Fiネットワークなどに、人間なら決して思いつかない認証情報が必要になったときに役立ちます。生成される文字列には辞書の単語もキーボードの並びも個人情報も含まれず、これこそが推測攻撃や総当たり攻撃を阻む要因です。「記号を1つ以上含む16文字以上」といった具体的なポリシーをサイトが課している場合も、コピーする前に長さと文字種を要件に合わせられるので便利です。
具体例で見る
あるサービスが記号を含む20文字を要求するとします。スライダーを20に設定し、4つの文字種をすべて有効にして生成すると、たとえば k7$Rf2!qXm9@Lp4#Vn8w のような結果が得られます。手入力したり読み上げたりする予定なら、「似た文字を除外」を有効にして、小文字のl・数字の1・大文字のO・ゼロといった紛らわしい文字が混在しないようにし、さらに「あいまいな文字を除外」で、一部の入力欄が扱いに困る括弧や引用符を取り除きます。
注意点とエッジケース
長さは、どんな小技よりも効きます。1文字増えるごとに組み合わせの数が跳ね上がるため、小さな文字集合から作った長いパスワードが、記号を詰め込んだ短いものを上回ることも珍しくありません。文字種を1つ外すとその母集団は縮み、すべて外すと組み立てる材料が何も残らないので、少なくとも1種類は選んだままにする必要があります。そして最大の弱点は使い回しです。パスワードの安全性は、それが守るたった1つのサイト分しかありません。同じ強力な文字列をあちこちで共有せず、アカウントごとに新しく固有のものを生成してください。