UUIDバージョンとは?

UUID(Universally Unique Identifier)は、RFC 4122およびRFC 9562によって標準化された128ビットの識別子です。すべてのUUIDには、生成方法を示すバージョンフィールドが含まれています。バージョンは13番目の16進数字(7バイト目の上位ニブル)にエンコードされており、識別子の生成に使用されたアルゴリズムとデータソースを決定します。

現在、8つの定義済みバージョン(v1〜v8)と、2つの特殊な形式があります:Nil UUID(すべてゼロ)とMax UUID(すべて1)です。各バージョンはそれぞれ異なる目的を持っています。時系列ソートのためにタイムスタンプを埋め込むもの、決定論的な生成のために暗号ハッシュを使用するもの、シンプルさのために乱数に依存するものなどがあります。バージョンを知ることで、UUIDのプロパティ、セキュリティへの影響、および意図された用途を理解できます。

別途エンコードされるvariantフィールドは、識別子がどのUUID仕様に準拠しているかを識別します。最近のUUIDのほとんどはRFC 4122/RFC 9562 variantを使用していますが、古いシステムではNCSまたはMicrosoft variantが生成される場合があります。

ツールの説明

このツールは任意のUUIDを入力として受け取り、そのバージョン番号、バージョン名、variant、生成方法、およびそのバージョンの仕組みに関する詳細な説明を識別します。標準バージョン(v1〜v8)のほか、NilおよびMax UUIDもサポートしています。UUIDを貼り付けるだけで、その完全な内訳を即座に確認できます。

入力UUID バージョン 名前
550e8400-e29b-41d4-a716-446655440000 4 ランダム (v4)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 1 時刻ベース (v1)
018f3e88-5c00-7b3a-8512-2d4a3f8e9c01 7 Unixエポック時刻ベース (v7)
00000000-0000-0000-0000-000000000000 Nil Nil UUID
ffffffff-ffff-ffff-ffff-ffffffffffff Max Max UUID

機能

  • v1〜v8のすべてのUUIDバージョン、およびNilとMax UUIDを検出
  • variant(RFC 4122/9562、NCS、Microsoft、またはReserved)を識別
  • バージョンの生成方法を説明する人間が読みやすい説明を表示
  • UUIDの生成に使用された生成方法を表示
  • 入力または貼り付けと同時にリアルタイムで即座に識別

ユースケース

  • 分散システムのデバッグ: ログ内のUUIDが時刻ベース(v1/v6/v7)かランダム(v4)かを判断し、抽出可能な埋め込みタイムスタンプが含まれているかどうかを把握する。
  • データベースの最適化: プライマリキーがソート可能なUUIDバージョン(v6、v7)を使用しているか、インデックスの断片化を引き起こす可能性のあるランダムなもの(v4)を使用しているかを識別する。
  • セキュリティ監査: MACアドレスやタイムスタンプが漏洩する可能性のあるv1 UUIDを検出し、情報漏洩リスクを評価する。

仕組み

このツールはUUIDの16進数構造を解析して、2つの主要なフィールドを抽出します:

  1. バージョン: 13番目の16進数字(ストリップされた16進数文字列のインデックス12)から読み取ります。このニブルはバージョン番号(1〜8)を直接エンコードします。NilおよびMax UUIDは、すべてのビットがゼロかすべてのビットが1かを確認することで検出されます。
  2. Variant: 17番目の16進数字(インデックス16)の最上位ビットによって決定されます。ビットパターンは、NCS、RFC 4122/9562、Microsoft、またはReservedの4つのvariantファミリーのいずれかにマッピングされます。

UUIDバージョン一覧

バージョン 名前 主な特性
v1 時刻ベース タイムスタンプ + MACアドレス
v2 DCEセキュリティ タイムスタンプ + MAC + POSIX UID/GID
v3 名前ベース (MD5) 名前空間 + 名前から決定論的に生成
v4 ランダム 122ビットのランダム値
v5 名前ベース (SHA-1) 決定論的、v3より強力なハッシュ
v6 並び替え済み時刻ベース v1のソート可能なvariant
v7 Unixエポック時刻ベース UnixミリタイムスタンプとランダムのDB キーに最適
v8 カスタム ベンダー固有または実験的
Nil Nil UUID 128ビットすべてがゼロ
Max Max UUID 128ビットすべてが1

よくある質問

UUIDのバージョンとvariantの違いは何ですか? バージョンは生成アルゴリズム(時刻ベース、ランダム、ハッシュベースなど)を示し、variantはUUIDが準拠している仕様(RFC 4122、NCS、Microsoft)を識別します。一般的に使用するUUIDのほとんどはRFC 4122/9562 variantです。

どのUUIDバージョンを使用すべきですか? ほとんどのアプリケーションでは、v4(ランダム)が最もシンプルで広くサポートされています。データベースのプライマリキーに時系列ソート可能な識別子が必要な場合は、v7が現代的な推奨です。名前から決定論的なUUIDが必要な場合はv5を使用してください。

このツールでUUIDからタイムスタンプを抽出できますか? このツールはバージョンとvariantの識別のみを行います。v1、v6、またはv7 UUIDから埋め込みタイムスタンプを抽出するには、専用のUUID Time Extractorツールをご使用ください。