パスワード生成
ランダム・発音式・パスフレーズの3方式でパスワードを生成
ランダムな文字の組み合わせ、発音しやすい文字列、覚えやすいパスフレーズの3つの方法で安全なパスワードを生成します。結果ごとにエントロピー(ビット)と強度を表示します。
🔒 crypto.getRandomValuesを使いブラウザ内だけで計算します — 生成したパスワードがサーバーに送信されることはありません。
文字の種類を1つ以上選んでください。
- 「生成」を押すとパスワードがここに表示されます。
使い方
- ランダム文字: 長さと文字種(大文字/小文字/数字/記号)を選んで完全にランダムなパスワードを作ります。パスワードマネージャーに保存するアカウント向けです。
- 発音可能: 子音と母音を交互に並べ、実在の単語ではないものの目で読んで声に出しやすい文字列を作ります。電話で伝えたり手入力する一時的なパスワードに便利です。
- パスフレーズ: よくある英単語を複数ランダムに選び、区切り文字でつなげます。文字数は長くなりますが覚えやすく、単語数を増やすほどエントロピー(安全性)も上がります。
- エントロピー(ビット)は、選んだ方式と設定で生成しうる組み合わせ数をlog2で表した値です。60ビット以上あれば一般的なオンラインサービスに、80ビット以上なら長期保存するアカウントにも十分です。
処理中…
0.0
停止していません。計算が終わると結果が表示されます。
パスワード生成について
このツールは3つの方式でパスワードを作ります。ランダムな文字の組み合わせ、発音しやすい文字列、そして単語をつないだパスフレーズです。すべての乱択はcrypto.getRandomValuesを使い、Math.randomは使いません。Math.randomは予測可能な値になり得て、秘密の用途に向かないためです。
各結果の横にはエントロピー(ビット)が表示されます。エントロピーはその方式で出得る場合の数を2の累乗で表した値で、パスワードの強さを測る最も正直な単一の指標です。以下でこの数の計算方法と、なぜ「長さ」が「複雑さの規則」より重要かを説明します。
エントロピー = 長さ × log2(文字種数)
ランダム文字モードで各文字を文字集合から一様に選ぶと、エントロピーは 長さ × log2(文字集合の大きさ) です。本ツールの全文字集合は 大文字26 + 小文字26 + 数字10 + 記号25 = 87種。log2(87) ≈ 6.44ビットなので、1文字が約6.44ビットを担います。
したがって12文字で約77ビット、16文字で約103ビット。1文字増えるごとに6.44ビット、つまり場合の数が87倍になります。逆に文字種を減らす(小文字のみ26種、log2(26)≈4.7ビット)と同じ長さでもエントロピーは下がります。「紛らわしい文字を除外」を有効にすると0・O・1・l・I・|などが抜けて集合がわずかに小さくなり、エントロピーもごくわずか下がります。
この計算は文字を本当にランダムに選んだときだけ成り立ちます。人が作る「P@ssw0rd!」のようなパスワードは文字数が多くても予測可能なパターンなので実際のエントロピーははるかに低いです。表示されるビット値は、本ツールがランダム生成した場合にのみ有効です。
複雑さの規則より長さが重要な理由
「大文字・数字・記号を必ず混ぜよ」という規則は文字集合を広げて1文字あたりのエントロピーを少し上げます。しかし長さを増やす方がはるかに効率的です。小文字のみ20文字(log2(26)×20 ≈ 94ビット)は、87種14文字(≈90ビット)より強いのです。むしろ規則は「Password1!」のような分かりやすいパターンを誘発し、予測可能性を高めます。
NISTのデジタルID指針(SP 800-63B、2025年改訂)はこの方向を明文化しました。利用者が決めるパスワードは最低8文字以上(パスワードのみを要素とする場合は15文字以上)を認め、最大64文字以上を許可し、文字種を強制する組み合わせ規則を課さないこと。また定期的な強制変更を求めず(漏えいの兆候があるときのみ変更)、漏えいパスワード一覧と照合してよくある値をはじくこととしています。
パスフレーズ:なぜ数語で安全になるのか
パスフレーズモードは256語(ちょうど2^8)の一覧から重複なく選んでつなぎます。一覧の大きさが2の累乗なので1語がちょうど8ビットです。ただし重複なしで選ぶ(非復元抽出)ため正確な値は少し異なり、5語で log2(256×255×254×253×252) ≈ 39.9ビットです。
有名なDiceware方式は7,776語(6面サイコロ5回)の一覧を使い、1語 log2(7776) ≈ 12.9ビット、6語で約77ビットです。本ツールの一覧はどの言語圏の利用者でも誤字なく書き写せるよう、短くありふれた英単語256語に絞ったので1語あたりのビットは低めですが、語数を増やせば補えます。要は人には覚えやすく機械には当てにくい点です。
「先頭大文字化」や「末尾に数字追加」オプションは見た目ほど強くしません。位置固定の先頭大文字は場合の数を増やさず、末尾1桁の数字は log2(10) ≈ 3.3ビットだけです。本当に強くするなら語数を増やしてください。
発音可能モードのトレードオフ
発音可能モードは子音(20種)と母音(5種)を交互につないで読みやすい文字列にしますが、その分1文字あたりのエントロピーが低くなります。子音は log2(20) ≈ 4.32ビット、母音は log2(5) ≈ 2.32ビットなので、子音+母音の一対で約6.64ビット。10文字で約39.9ビットにすぎません。
覚えやすい反面、ランダム文字モードよりずっと弱いということです。目で読んで打ち直す必要がある一時的なパスワード程度に使い、長く守るべきアカウントには十分に長いランダム文字か語数の多いパスフレーズを使ってください。
例
12文字 vs 16文字(全87種)
- 入力
ランダム文字モード、大小英字+数字+記号- 結果
12文字 ≈ 77ビット、16文字 ≈ 103ビット
1文字が log2(87) ≈ 6.44ビット。4文字差で約26ビット、場合の数で約6,700万倍の差です。
5語パスフレーズ
- 入力
パスフレーズモード、256語一覧から5語- 結果
約39.9ビット(例:river-anchor-melody-copper-forest)
log2(256×255×254×253×252)で計算。6語に増やすと約47.9ビットになります。
使い方
- ランダム文字・発音可能・パスフレーズから方式を選びます。
- 長さや語数、含める文字種を調整します。
- 表示されるエントロピー(ビット)で強さを確認します。
- 生成値をコピーして使います。作り直すには再生成します。
主な用語
- エントロピー(ビット)
- ランダム生成で出得る場合の数をlog2で表した値。大きいほど当てにくい。
- 文字集合の大きさ
- 1つの位置に来得る文字の種類数。大きいほど1文字あたりのエントロピーが大きい。
- パスフレーズ
- 複数の単語をつないだパスワード。覚えやすく、長さでエントロピーを確保します。
よくある質問
何ビットあれば安全?
オンラインサービス(試行回数制限あり)なら数十ビットで十分ですが、漏えいハッシュが攻撃される状況まで備えるなら80ビット以上を推奨します。本ツールは60ビット以上を「強い」と表示します。
記号は必ず入れる?
いいえ。NISTは文字種の強制を推奨しません。長さが十分なら小文字だけでも安全です。ただし記号を禁じるサイトもあり、互換のために入れることもあります。
生成値はサーバーに送られる?
送られません。生成はブラウザ内だけで行われ、乱数はcrypto.getRandomValuesで取得します。
パスワードは定期的に変えるべき?
NISTは漏えいの兆候がない限り定期的な強制変更を推奨しません。頻繁な変更はむしろ「月名+数字」のような予測可能なパターンを招きます。
パスフレーズで大文字・数字を有効にすると大幅に強くなる?
ほとんどなりません。位置固定の大文字化はエントロピーを増やさず、末尾1桁は約3.3ビットだけです。語数を増やすのが確実です。
関連ガイド
出典
- NIST SP 800-63B — Digital Identity Guidelines: Authentication (v4.0, 2025)
- EFF — Deep Dive: EFF's New Wordlists for Random Passphrases
- MDN — Crypto.getRandomValues()
基準日: