メインコンテンツへスキップ
FreeOnlineTools Go
日本語
説明

UUIDとは?汎用一意識別子の完全な解説

FreeOnlineTools Team 著 · 2026-09-02を更新しました

簡単な回答

UUID は、36 文字 (32 の 16 進数字と 4 つのハイフン) で表される 128 ビットの識別子です。 UUID は調整なしでは実質的に一意であり、衝突の可能性は無視できます。 UUID v4 (ランダム) が最も一般的なバージョンです。無料の UUID ジェネレーターを使用して、ブラウザーで UUID を作成します。

導入

Microsoft 用語では GUID (Globally Unique Identifier) とも呼ばれる UUID (Universally Unique Identifier) は、中央調整なしで一意であることが事実上保証されている 128 ビットの識別子です。 UUID は RFC 4122 で定義されており、データベースの主キー、リクエスト ID、セッション トークン、分散システム識別子として広く使用されています。最も一般的なバージョンは UUID v4 で、ランダム ビットを使用します。 UUID は、ハイフンで区切られた 5 つのグループの 32 個の 16 進数として表されます: 8-4-4-4-12 (例: 550e8400-e29b-41d4-a716-446655440000)。

ステップバイステップ

  1. UUID 構造を理解する

    UUID は 128 ビットで、5 つのグループ (8-4-4-4-12) の 32 個の 16 進数として表示され、ハイフンで区切られます (例: 550e8400-e29b-41d4-a716-446655440000)。 13 桁目はバージョン (v4 の場合は 4) を示し、17 桁目はバリアントを示します。

  2. UUID バージョンを確認する

    v1: 時間ベース (タイムスタンプ + MAC アドレス) — 時間順ですが、ID が漏洩します。 v3: MD5 ハッシュを使用した名前ベース。 v4: ランダム — 最も一般的で、プライバシーの懸念はありません。 v5: SHA-1 ハッシュを使用した名前ベース。 v6 および v7: v1 よりもプライバシーが向上した時間順です。

  3. 衝突確率を理解する

    UUID v4 には 2^122 個の可能な値があります。 103 兆個の UUID 間で衝突が発生する確率は 50% です。実際の使用 (数百万の ID) では、衝突確率は事実上ゼロです。調整なしで個別に UUID を生成できます。

  4. UUIDを適切に使用する

    ほぼすべてのユースケース (データベース ID、リクエスト ID、セッション トークン) には v4 を使用してください。データベースの局所性のために時間順の ID が必要な場合は、v7 を使用してください。セキュリティが重要なコンテキストでは v1 を避けてください。v1 にはタイムスタンプと MAC アドレスが埋め込まれています。

例

UUID v4 (ランダム)

入力: crypto.getRandomValues で生成

出力: 550e8400-e29b-41d4-a716-446655440000

UUID v1 (時間ベース)

入力: タイムスタンプ + MAC アドレス

出力: a3bbf0ee-d6e4-11ed-a5b3-3c9703e8b4a1

なし UUID

入力: All zeros

出力: 00000000-0000-0000-0000-000000000000

よくある問題

  • UUID に Math.random() を使用する - これは暗号的に安全ではありません。ブラウザで crypto.getRandomValues() または crypto.randomUUID() を使用します。
  • UUID を文字列として保存する - UUID 文字列は 36 バイトです。 UUID 型 (16 バイト) として保存すると、より効率的になります。可能な場合は、データベースでネイティブの UUID タイプを使用します。
  • セキュリティが重要なコンテキストでの v1 の使用 — v1 にはタイムスタンプと MAC アドレスが埋め込まれているため、いつ、どこで生成されたかに関する情報が漏洩する可能性があります。匿名性のために v4 を使用します。
  • UUID が本当に一意であると仮定すると、UUID は実質的に一意です (衝突の可能性は無視できます) が、数学的に一意であることが保証されているわけではありません。

ヒント

  • ほぼすべてのユースケースには UUID v4 を使用してください。これはランダムであり、プライバシーの問題がなく、最新のすべてのデータベースでサポートされています。
  • ライブラリを使用しない組み込みの v4 ジェネレーターには、最新のブラウザーで crypto.randomUUID() を使用します。
  • ストレージとインデックスのパフォーマンスを向上させるために、UUID を文字列 (36 バイト) ではなく UUID/GUID タイプとしてデータベース (16 バイト) に保存します。
  • UUID ジェネレーターを使用すると、ブラウザーで即座に UUID を作成できます。サインアップは不要で、完全にプライベートです。

関連ツール

関連ガイド

参考文献