本文へスキップ
LeedyBox
支援する

パスワード・UUID生成

Web Crypto API を使ってランダムなパスワードと UUID(v4・v7)をブラウザで生成し、UUID のバージョンやタイムスタンプも確認できます。

パスワード生成

使用する文字
推定エントロピー: – –

エントロピー = 長さ × log2(使用可能な文字の種類数)。この推定値は、下に表示されるパスワードのようにランダムに生成したパスワードにのみ当てはまります。

生成されたパスワード

    UUID 生成

    UUID 解析

    注意事項

    • パスワードと UUID は、Web Crypto の乱数生成器を使ってブラウザ内で生成されます。LeedyBox に送信・保存されないため、LeedyBox が復元することはできません。使い続けるパスワードはパスワードマネージャーに保存してください。
    • アカウントごとに異なるパスワードを使い、利用できる場合は2要素認証を有効にしてください。
    • 強度の表示は推定です。サービスがパスワードをどのように保存しているかや、そのパスワードがデータ漏えいに含まれたことがあるかは考慮していません。
    • UUID v7 には作成時刻が含まれるため、見た人は誰でも生成された日時を読み取れます。それが問題になる場合は v4 を使ってください。
    • UUID は識別子です。パスワードや秘密のトークンとして使わないでください。

    使い方

    1. 数値の欄またはスライダーで長さ(4〜128、初期値は 16)を設定し、「パスワードの数(1〜50)」欄に必要な個数を入力します(初期値は 5)。オプションを変更するたびに新しい一覧が生成されます。値が範囲外の場合や、文字の設定が使えない場合は、一覧の代わりに、何を変更すればよいかを示すメッセージが表示されます。
    2. 「使用する文字」で使う文字の種類を選び、必要に応じて「使用する記号」を編集します。パスワードを読み上げたり、紙を見ながら入力したりする場合は、「似ている文字を除外(I l 1 O 0 o)」をオンにします。
    3. 推定エントロピーと強度の表示を確認し、パスワードの横にある「コピー」を押すか、「すべてコピー」で 1 行に 1 つずつ並んだ一覧全体をコピーします。「再生成」を押すと、同じ設定で新しい一覧が作られます。
    4. ID が必要な場合は、「UUID 生成」の「バージョン」で v4 または v7 を選び、UUID の数(1〜100、初期値は 5)を入力します。システムが求める形式に合わせて「大文字」「ハイフンなし」のどちらかまたは両方をオンにし、「UUID を生成」を押します。バージョンやどちらかのチェックボックスを変更すると、現在の UUID の表記が変わるのではなく、別の UUID からなる新しい一覧が作られます。「UUID を生成」の横にある「すべてコピー」ボタンで、1 行に 1 つずつ並んだ一覧をコピーできます。
    5. 既存の UUID を確認するには、「UUID 解析」の「UUID を貼り付け」欄に貼り付けます。結果は入力に合わせて更新されます。ハイフンの有無、大文字・小文字、波かっこで囲んだ形、urn:uuid: の接頭辞付きのいずれも受け付けます。結果には、有効かどうかと、正規化した形式(ハイフン付きの小文字)、バリアント、バージョンに加え、UUID にタイムスタンプが含まれている場合はそのタイムスタンプが表示されます。Nil UUID と Max UUID では、バリアントとバージョンの代わりに種類が表示されます。

    よくある質問

    パスワードはどのくらいランダムですか?コピーしても安全ですか?

    各文字は、ブラウザに組み込まれた暗号論的に安全な乱数生成器である crypto.getRandomValues を使って選ばれます。単純な剰余演算による偏りを避けるために棄却サンプリングを使い、選んだ文字はその後シャッフルされます。一覧は開いているページの中にだけ存在し、ページを再読み込みしたり、「再生成」を押したり、オプションを変更したりすると置き換えられます。コピーしたパスワードは、別の内容で置き換えられるまでクリップボードに残ります。また、クリップボード履歴や同期の機能によってコピーが保存されたり、ほかの端末に送られたりすることがあります。パスワードマネージャーに貼り付けた後は、別のものをコピーし、クリップボード履歴からも削除してください。

    「弱い」「普通」「強い」「非常に強い」は何を表しますか?パスワードはどのくらいの長さにすべきですか?

    推定エントロピーの範囲を表します。40 ビット未満は「弱い」、40 以上 60 ビット未満は「普通」、60 以上 80 ビット未満は「強い」、80 ビット以上は「非常に強い」です。1 文字ごとに、使用可能な文字の種類数の log2 だけエントロピーが加わります。初期設定の 85 種類(4 種類すべての文字と初期設定の記号)では 1 文字あたり約 6.4 ビットなので、初期設定の長さの 16 文字で約 102.6 ビットになり、「非常に強い」に当たります。パスワードマネージャーで管理するランダムなパスワードなら、サイトが受け付ける範囲で「非常に強い」に入る長さを目安にするとよいでしょう。サイトが英字と数字しか認めない場合は、記号が使えない分を長さで補ってください。その 62 種類の文字で 20 文字にすると約 119 ビットになります。

    実際の強度が推定値より低くなることがあるのはなぜですか?

    「選択した種類の文字をそれぞれ1文字以上含める」がオンの場合、いずれかの種類を含まないパスワードは生成されません。また、パスワードの文字数が選択した種類の数より多い場合、生成されうるパスワードがすべて同じ確率で出るわけではありません。そのため、実際のエントロピーは「長さ × log2(使用可能な文字の種類数)」から求めた値より低くなります。この差は短いパスワードでは目立ちますが、長いパスワードではわずかです。初期設定の 4 種類の文字で 4 文字にすると約 25.6 ビットと表示されますが、正確な値は約 21.8 ビットです。初期設定の 16 文字では、差は 0.5 ビット未満です。このオプションをオフにすると、各文字は使用可能なすべての文字から独立して選ばれるため、推定値はパスワードの生成方法と一致します。

    ウェブサイトで一部の記号が使えません。どうすればよいですか?

    サイトが受け付けない記号を「使用する記号」欄から削除するか、許可されている記号だけを入力します。一覧は入力に合わせて生成し直されます。空白は無視され、同じ文字を 2 回入力しても 1 つとして数えます。サイトが記号を必須としている場合は、「選択した種類の文字をそれぞれ1文字以上含める」をオンのままにしてください。記号をまったく受け付けない場合は、「記号」のチェックを外し、文字の種類が減った分だけ長さを増やしてください。

    UUID は v4 と v7 のどちらを使うべきですか?

    順序が重要でない場合や、ID から作成時刻を読み取られたくない場合は v4 を使います。v7 の UUID はミリ秒単位の 48 ビットの Unix タイムスタンプで始まり、バージョンとバリアントのビットを除く残りの 74 ビットはランダムです。ただし、生成器によってはその一部をカウンターやより細かい時刻に使います。そのため v7 の UUID はおおむね作成順に並び、データベースのキーとして使うと、新しいエントリがインデックス内で近くにまとまりやすくなります。このページでは、各ミリ秒で最初に作る v7 の UUID には 73 ビットのランダムな値が入り、74 ビットのうち最上位のビットは 0 のままになります。同じミリ秒内にさらに v7 の UUID を作成した場合や、端末の時計が戻った場合は、ランダムな値を引き直す代わりに直前の値をランダムな量だけ増やすため、作成順に並んだままになります。

    生成された 2 つの UUID が同じになることはありますか?

    理論上はありえますが、ブラウザの乱数生成器が想定どおりに動作している限り、実際にはその確率は無視できるほど小さいです。v4 の UUID には 122 ビットのランダムな部分があるため、いずれか 2 つが一致する確率が 50% になるには、約 2.7 × 10^18 個を生成する必要があります。このページで作成する v7 の UUID は、それぞれ直前のものより大きくなるため、ページを開いている間は重複しません。また、ほかの場所で作成された v7 の UUID がこれらのいずれかと一致するのは、ミリ秒とランダムなビットの両方が同じ場合に限られます。

    UUID 解析でタイムスタンプが表示される UUID と表示されない UUID があるのはなぜですか?

    時刻を読み取るのは、RFC 9562 バリアントのバージョン 1、6、7 だけです。これらは決められた位置に時刻を格納しており、バージョン 1 と 6 は 1582 年 10 月 15 日からの 100 ナノ秒単位の間隔の数、バージョン 7 は 1970-01-01 UTC からのミリ秒数を表します。時刻は UTC でミリ秒まで表示されます。この時刻は UUID を作成した端末の時計に基づいており、生成器によってはずらしたり丸めたりするため、おおよその作成時刻として扱ってください。バージョン 2 はタイムスタンプの一部を別のデータに置き換えており、バージョン 8 の構造は作成者が独自に定義し、バージョン 3、4、5 には時刻が含まれません。