FIRST CH TOOLS / 37 PASSWORD GENERATOR
安全なパスワード生成
長さと文字の種類を決めて、推測されにくいパスワードを最大50件まとめて発行します。0 と O、1 と l のような紛らわしい文字を外す・記号の種類を絞るといった、貼り付け先の都合に合わせた調整ができます。乱数はこのブラウザの暗号用乱数生成器から取り出しており、生成したパスワードはどこにも送信されず、URLにも残りません。
| 項目 | 値 | 意味 |
|---|
How to Use
- 長さを決める迷ったら 16文字から始めてください。長さは文字種を増やすより効きます。パスワード管理ソフトに預けるなら20文字以上、手で打ち込む必要があるものは12〜16文字が現実的です。
- 文字の種類を選ぶ記号を受け付けないサービスなら記号を外し、特定の記号だけ弾かれるなら「使う記号」から消します。紙に書き写したり口頭で伝えたりするパスワードは、紛らわしい文字を除くを入れたままにしてください。
- 生成してコピー「生成する」を押すとその場で並びます。行ごとの「コピー」で1件だけ、「すべてコピー」で全件をクリップボードへ。強度は上のビット数と、下の表の「解読までの目安」で確認できます。
About This Tool
乱数は crypto.getRandomValues() =ブラウザの暗号用乱数生成器から取っています。Math.random() は使っていません。Math.random は速度を優先した実装で、出力をいくつか観測すると内部状態を復元でき、以降の値が予測できます。パスワードは「予測できないこと」そのものが価値なので、この違いは決定的です。加えて、文字を選ぶときの剰余のかたより(modulo bias)も取り除いています。32bitの乱数を文字数で単純に割った余りで選ぶと、割り切れない分だけ先頭側の文字がわずかに出やすくなるため、上限を超えた乱数は捨てて引き直しています。
強度は「文字の種類」より「長さ」で決まります。選べる文字が N 種類・長さが L 文字なら、組み合わせの数は NL = 強度は L × log2(N) ビットです。記号を足して N を 62 から 94 に増やしても1文字あたり 5.95→6.55 ビットにしかなりませんが、長さを1文字足せばその分がまるごと増えます。8文字は記号を混ぜても約52ビットで、漏えいしたハッシュをGPUで殴られる状況では数日〜数時間の世界です。12文字で約79ビット、16文字で約105ビットになり、ここまで来ると総当たりは現実的でなくなります。
「各種類を1文字以上入れる」は強度をわずかに下げます。この指定は「大文字が1つも入っていない候補」を除外するため、候補の総数が減るからです。このツールはその減少分を包除原理で計算して差し引いたビット数を表示しています(多くのツールは L × log2(N) のままで、実際よりやや高く出ます)。とはいえ減るのは1ビット未満から数ビット程度で、「大文字・数字・記号を各1文字以上」という要件を課すサービスに通すための実務上の必要経費です。なお1文字目に大文字が固まらないよう、確保した文字は Fisher-Yates シャッフルで混ぜています。
紛らわしい文字の除外は、書き写す前提のときだけ使ってください。除外すると選べる文字が減り、同じ長さでの強度がわずかに下がります(94→87種類で1文字あたり0.11ビット減)。パスワード管理ソフトにコピー&ペーストで預けるなら、除外せずに使うほうが素直です。逆に、初期パスワードを紙で渡す・電話で伝える・別端末で手打ちするといった場面では、0 と O、1 と l と I の取り違えによる問い合わせのほうが実害になります。
生成したパスワードは、この端末の外に出ません。サーバーへ送信しないだけでなく、URLパラメータにも入れていません(URLはブラウザの履歴・ブックマーク・共有リンク経由で残るため、パスワードを載せる場所として不適切です)。このページに渡せるのは設定だけです: /password/?length=24&count=3&symbols=0(length=4〜128・count=1〜50・upper/lower/digits/symbols=0|1・similar=1 で紛らわしい文字を除外・each=1 で各種類を1文字以上・symbolset= 使う記号・exclude= 使わない文字)。ファイルとして保存する機能はあえて用意していません(平文のテキストがダウンロードフォルダに残るのを勧めないため)。生成後はパスワード管理ソフトへ直接貼り付け、共有が必要なら期限付きの安全な経路を使ってください。
使い回しをやめることが、強度を上げることより先です。どれだけ強いパスワードでも、複数のサービスで同じものを使えば、1か所の漏えいで芋づる式に破られます(クレデンシャルスタッフィング)。サービスごとに別のパスワードを作り、管理ソフトに預け、可能なところはパスキーや二要素認証を併用してください。定期変更は、NIST SP 800-63B が「漏えいの兆候がない限り強制すべきでない」としています(機械的な変更は Pass1! → Pass2! のような予測しやすい変化を招くためです)。
Other Tools
- 01画像→WebP一括変換WebP Converter
- 02白背景の透過White BG Remover
- 03コントラスト比チェッカーContrast Checker
- 04文字数カウントCharacter Counter
- 05llms.txt ジェネレーターllms.txt Generator
- 06JSON-LD構造化データ生成JSON-LD Generator
- 07Markdown→PDF変換MD → PDF
- 08OGPメタタグ生成ウィザードOGP Wizard
- 09faviconジェネレーターFavicon Generator
- 10TikTok投稿ツールTikTok Publisher
- 11文字コード・改行コード変換Encoding Converter
- 12画像→AVIF変換+picture生成AVIF Converter
- 13テストデータ生成Test Data Generator
- 14Marp Markdown→スライドMarp Slides
- 15テキスト・コード差分チェッカーDiff Checker
- 16Cron式ビジュアル解説&発火日時Cron Explainer
- 17Base64 & Data URI変換Base64 & Data URI
- 18URLパラメータ分解・UTMタグ編集URL Parameters
- 19HTMLエンティティ・特殊文字エスケープHTML Escape
- 20JSON ⇄ YAML 相互変換&整形JSON ⇄ YAML
- 21PX ⇄ REM / EM 単位変換&スケール表PX ⇄ REM / EM
- 22Colorコード変換&アルファ透過Color Converter
- 23MD5 / SHA-256 ハッシュ生成Hash Generator
- 24JWTデコーダー&有効期限チェックJWT Decoder
- 25User-Agent 解析&デバイス判定User-Agent Parser
- 26UUID & ULID 一括生成UUID & ULID Generator
- 27アスペクト比計算&レスポンシブサイズAspect Ratio Calculator
- 28Markdownテーブル整形&CSV/TSV変換Markdown Table
- 29SQLクエリフォーマッター&整形SQL Formatter
- 30QRコード生成QR Code Generator
- 31正規表現テスターRegex Tester
- 32UNIXタイムスタンプ⇄日時変換Unix Time Converter
- 33新規タブメモ帳 Chrome拡張New Tab Memo
- 34画像リサイズ&クロップImage Resizer
- 35EXIF情報の確認&除去EXIF Viewer
- 36robots.txt ジェネレーターrobots.txt Generator
- 38文字列ケース変換Case Converter