ssecutils

🔐 Password Generator

暗号学的に安全な乱数(crypto.getRandomValues)でパスワードまたはパスフレーズを生成。すべてブラウザ内で完結し、サーバーに送信されません。

104 bits · 非常に強い
16

💡 パスワード vs パスフレーズ

  • パスワード: ランダムな文字列。短くて済むがタイプしにくく覚えにくい。サービスの最大長制限に合わせて使う。
  • パスフレーズ: 複数の単語をつないだもの(XKCD #936 の correct-horse-battery-staple が有名)。長いが覚えやすい。マスターパスワード・SSH鍵パスフレーズに最適。
  • 一般的に 16文字以上 + 4種類混在 = エントロピー 100 bit 以上 あれば現在の総当たり攻撃に十分安全です。パスフレーズなら 6語以上 でほぼ同等のエントロピーになります。
  • 乱数生成にはブラウザ標準の Web Crypto API(crypto.getRandomValues)を使用、Math.random() は使いません。
使い方と解説

安全なパスワードをブラウザ内で生成する

Password Generator は、アカウント作成、初期パスワード発行、検証用の認証情報作成に使えるパスワード生成ツールです。文字数、記号、数字、大文字小文字を調整しながら、推測されにくい値をすばやく作れます。

入力データの扱い

生成処理はブラウザ内で完結し、生成したパスワードはsecutilsのサーバーへ送信されません。

強いパスワード作成に向く場面

社内ツールの初期パスワード、検証環境の一時認証情報、パスワードマネージャーへ登録する値を作るときに便利です。長いパスフレーズも作れるため、覚えやすさと強度のバランスを取りたい場合にも使えます。

確認したいポイント

短い文字列に記号を混ぜるだけでは十分とは限りません。長さ、ランダム性、再利用しないこと、漏えい時にすぐ変更できる運用まで含めて考えると安全性が上がります。

作りながら気づいたこと

作る前は「大文字・小文字・数字・記号を混ぜて複雑にしておけば安全」という認識で、乱数も「Math.random()で十分では」と思っていました。しかし調べていくうちに、複雑さより長さと使い回さないことの方が重要だと分かり、また暗号学的に安全な乱数(crypto.getRandomValues)でなければパスワード用途には不十分だと理解しました。文字選択時のmodulo bias(剰余による偏り)も見落としがちな落とし穴で、rejection samplingで補正しています。それ以来、「自分が覚えられるパスワードを作る」のではなく「覚える必要のないパスワードを生成・管理してもらう」という考え方に変わりました。

Password Generator でできること

  • 暗号学的に安全な乱数で生成
  • 長さ、文字種、記号の有無を調整
  • パスフレーズ形式にも対応
関連ツール

次に使うツール

作業の流れに近いツールへすぐ移動できます。

解説記事

このツールに関連する解説記事

すべての記事 →