パスワード生成ツール/ セキュアランダム

強力なランダムパスワードを瞬時に生成。長さ、文字種、一括生成をカスタマイズ可能。Web Crypto API 使用 — パスワードはブラウザ外に送信されません。

設定
パスワードの長さ
43264128
生成数
一度に複数のパスワードを生成
5
0 O o I l 1 などを除外
強度非常に強い
エントロピー: 104 bits91 chars

パスワードはブラウザ内で生成され、サーバーに送信されません

生成結果
W[rO<G4RpzpZptXu
jE&[6jI=%vEF)_CX
Y$h?0=6rT~MjPen%
ehwSR*I&B<l|(Jq/
lzvsUoydV}1b*~yv

このツールは役に立ちましたか?

強力なパスワードとは

強力なパスワードは一般的に以下の条件を満たします:長さは最低12文字(16文字以上推奨)、大文字・小文字・数字・特殊記号を含む、辞書に載っている単語や個人情報を使用しない、各サイトで異なるパスワードを使用する。パスワードの強度は長さと密接に関連しており、16文字のランダムパスワードは8文字の複雑なパスワードよりもブルートフォース攻撃が困難です。NISTの最新ガイドラインでは複雑さよりも長さを優先することを推奨しています。

自分でパスワードを考えるべきでない理由

人間はパスワード作成時に予測可能なパターンを使いがちです:名前+誕生日+記号、キーボード配列(qwerty、123456)、一般的な単語の変形など。これらのパターンは攻撃者のパスワード辞書に既に収録されており、数秒で解読されてしまいます。ランダムに生成されたパスワードにはパターンがなく、ブルートフォース攻撃には数百年かかります。パスワード生成ツールとパスワードマネージャ(1Password、Bitwardenなど)の併用がベストプラクティスです。

このパスワードジェネレータは安全か

このツールはブラウザ内蔵のWeb Crypto API(crypto.getRandomValues)を使用しており、暗号学的に安全な擬似乱数生成器(CSPRNG)です。生成プロセスはすべてブラウザ内で完結し、パスワードがサーバーにアップロードされることはありません。ネットワーク転送がないため、漏洩リスクもありません。オフラインでも安心して使用できます。

コード例

JavaScript
function generatePassword(len, charset) {
  const arr = new Uint32Array(len);
  crypto.getRandomValues(arr);
  return Array.from(arr, (v) =>
    charset[v % charset.length]
  ).join("");
}

const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";
const pw = generatePassword(16, chars);
// e.g. "xK9#mP2&vL5$nQ7@"
Python
import secrets
import string

def generate_password(length=16):
    chars = (
        string.ascii_letters
        + string.digits
        + string.punctuation
    )
    return "".join(
        secrets.choice(chars)
        for _ in range(length)
    )

pw = generate_password(16)
# Uses OS-level CSPRNG
TypeScript
function securePassword(
  length: number,
  options = {
    upper: true, lower: true,
    digits: true, symbols: true,
  }
): string {
  let pool = "";
  if (options.upper) pool += "A-Z";
  if (options.lower) pool += "a-z";
  if (options.digits) pool += "0-9";
  if (options.symbols) pool += "!@#$%^&*";
  const buf = new Uint32Array(length);
  crypto.getRandomValues(buf);
  return [...buf].map(v =>
    pool[v % pool.length]).join("");
}
Go
import (
    "crypto/rand"
    "math/big"
)

func GeneratePassword(
    length int, charset string,
) (string, error) {
    result := make([]byte, length)
    max := big.NewInt(int64(len(charset)))
    for i := range result {
        n, err := rand.Int(rand.Reader, max)
        if err != nil {
            return "", err
        }
        result[i] = charset[n.Int64()]
    }
    return string(result), nil
}

よくある質問

生成されたパスワードは安全ですか?
はい、非常に安全です。このツールはブラウザのネイティブ Web Crypto API(crypto.getRandomValues)を使用しています。これは暗号学的に安全な乱数生成器で、1Password や Bitwarden などのプロフェッショナルなパスワードマネージャーと同じ技術です。
パスワードはサーバーに送信されますか?
いいえ。すべてのパスワードはブラウザ内で完全に生成・表示されます。ネットワークリクエストは一切発生しません。ソースコードは完全に公開されており、いつでも確認できます。オフラインでも動作します。
パスワードの長さはどのくらいが適切ですか?
最低12文字、理想的には16文字以上をお勧めします。12文字の混合パスワードは約72ビットのエントロピーを持ち、解読には数百年かかります。16文字(95ビット以上)では、既知のすべてのブルートフォース攻撃に耐えられます。重要なアカウントには20文字以上を使用してください。
パスワードエントロピーとは何ですか?
パスワードエントロピーはランダム性と強度をビット単位で測定します。計算式は log2(文字プールサイズ) x パスワード長です。エントロピーが高いほど解読が困難です。一般的に60ビット以上が中程度、80ビット以上が強力、128ビット以上は現在の技術では事実上解読不可能です。
なぜ紛らわしい文字を除外するのですか?
一部の文字は見た目が非常に似ています:0 と O、1 と l と I など。パスワードを手動で入力したり口頭で伝えたりする必要がある場合、このオプションを有効にすると混乱を避けられます。コピー&ペーストのみの場合は、より大きな文字プールのためにオフのままで構いません。
生成したパスワードはどのように保存すべきですか?
ブラウザの自動入力ではなく、専用のパスワードマネージャー(1Password、Bitwarden、KeePass)を使用してください。パスワードをプレーンテキストファイル、付箋、チャットメッセージに保存しないでください。各アカウントには必ず異なるパスワードを使用してください。