コンテンツへスキップ
uencoder

暗号学的に安全なランダムパスワードを生成する

暗号学的に安全な乱数ジェネレーターを使い、長さと文字種を制御して高エントロピーのパスワードを作成します。

  1. 1

    安全なパスワードは、Math.random() ではなく暗号論的に安全な乱数源(CSPRNG)から生成しなければなりません。長さと文字セットがエントロピーを決めます。16 文字以上の混合文字で約 100 ビットになり、オフライン総当たり攻撃に強くなります。

  2. 2
    パスワードジェネレーター →

    長さ(推奨 16〜32)を設定し、文字セット(小文字、大文字、数字、記号)を選択します。ツールは Web Crypto API の CSPRNG を使います。

  3. 3
    ランダムバイトジェネレーター →

    パスワード以外のランダムトークン(API キー、セッション ID)には、このツールで指定バイト長の hex または Base64 ランダム文字列を生成します。

  4. 4

    出力に選択したすべてのセットの文字が含まれることを確認してください。パスワードを手書き転写する場合は、紛らわしい文字(0/O、1/l/I)を避けてください。一部のジェネレータには「紛らわしい文字を除外」オプションがあります。

よくある質問

パスワードはどのくらいの長さにすべきですか?
レートリミットのあるオンラインサービスなら 12〜16 文字で十分です。オフライン攻撃のシナリオ(暗号化バックアップ、ローカル保管庫)では 20 文字以上を使ってください。1 文字追加するごとに、総当たりコストがアルファベットサイズ倍になります。
パスフレーズはランダムパスワードより優れていますか?
ランダムパスフレーズ(7776 語のリストから 4〜6 語)は、16 文字のランダムパスワードと同等のエントロピーを持ちながら、入力と記憶が容易です。マシン/API 向けにはランダムパスワードを、人間が入力するログインにはパスフレーズを使ってください。

関連ツール