UUID 解析・デコードワークベンチ

UUID Decoder & Inspector UUID Analysis Tool

UUID のバージョン、バリアント、タイムスタンプ、構造を解析します。v1~v8 の全バージョン判定、Timestamp のデコード、Node ID 抽出、UUID 比較、形式変換に対応します。検証ツールとしてだけでなく、UUID を学ぶためのワークベンチとしても使えます。

簡単な例: v1 v1(DNS) v4 v4 v7 v7(時刻) v6

UUID 比較

UUID Byte Map

UUID を入力すると byte structure が表示されます。

形式変換

--
--
--
--
--

よくある質問(FAQ)

UUID とは何ですか?
UUID(Universally Unique Identifier)は、分散システムで情報を一意に識別するための 128-bit 識別標準です。標準形式は 32 個の 16 進文字をハイフンで 5 グループに分けたものです。xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

UUID の重要な価値は、中央の登録機関を必要とせず、グローバルに一意な識別子を生成できる点です。これはデータベースの主キー、分散トレーシング、作業ステージの識別などで非常に重要です。
UUID v1〜v8 にはどのような違いがありますか?
バージョン時間基準ランダム性主な用途
v1100ns 間隔(1582-10-15)クロック + ノード従来型クロノタイプ
v3MD5 Hash名前タイプ(MD5)
v4122 ビットのランダム値最も一般的なランダム UUID
v5SHA-1 Hash名前タイプ(SHA-1)
v6100ns 間隔(ソート最適化)クロック + ノード並べ替え可能な時刻型
v7Unix ミリ秒74 bits ランダム⭐ 新しい標準時刻タイプ
v8カスタマイズカスタマイズ実験/カスタマイズ
the difference between RFC 4122 and RFC 9562 とは何ですか?
RFC 4122(2005)は元の UUID 規格で、v1、v3、v4、v5 の 4 バージョンを定義しています。RFC 9562(2024 年 5 月)は更新版で、v6、v7、v8 を追加しつつ後方互換性を維持しています。

主な変更点:
• v6 は v1 と互換性がありますが、データベースで並べ替えやすいよう field の順序が変更されています。
• v7 は Unix ミリ秒タイムスタンプを使用し、v1 の 1582 年基準を置き換えています。より単純で現代的な要件に合っています。
• v8 は実験的な custom format で、開発者が独自の field layout を定義できます。
• 新規アプリケーションでは性能と sortability のバランスが良い UUID v7 の利用をおすすめします。
なぜ現在は UUID v7 が推奨されるのですか?
UUID v7 を推奨する主な理由:

並べ替え可能:上位 bit が timestamp なので、database で UUID を sort すると creation time 順になり、B-Tree index performance を大きく改善できます
高効率:グローバルロックやノード ID が不要で、高速に生成できます
プライバシー:MAC アドレスと正確な時刻を公開する v1 とは異なり
十分にランダム: 74 bit のランダム部分により、約 2.4 × 10²² 通りの組み合わせを持ちます。
標準化:RFC 9562 に採用され、MySQL 8.0+、PostgreSQL、SQLite など主要 database で利用できます

新規システムでは、特別な互換性要件がない限り、一般に UUID v4 より v7 の方が適した選択です。
UUID の Variant とは何ですか?
Variant は UUID の byte layout specification を表し、9 番目の byte の上位 bit によって決まります。

NCS(0xxx):初期の NCS 形式。現在はほとんど使われません
RFC 4122(10xx):現在の標準形式(最も一般的)
Microsoft (110x): Microsoft GUID 互換形式
予約済み(111x): 将来の定義用に予約

現在の UUID の多くは RFC 4122 Variant を使用しており、このツールで UUID がどの Variant を使っているかすばやく確認できます。
UUID と GUID の違いは何ですか?
技術的な違いはほとんどありません。GUID(Globally Unique Identifier)は Microsoft による UUID 規格の実装で、Windows COM/OLE などで使われています。どちらも RFC 4122 に従い、128 bit・32 桁の 16 進数という同じ形式を持ちます。

ごく小さな違いとして、Microsoft GUID は mixed endian 形式(ハイフンで区切られたグループ内で byte 順が異なる形式)で出力される場合があります。ただし影響するのは表示だけで、一意性は変わりません。実用上 UUID と GUID は同種の識別子として扱えます。
NIL UUID とは何ですか?
Nil UUID(Zero UUID とも呼ばれます)は、すべての byte が 0 の特殊な UUID です:00000000-0000-0000-0000-000000000000。実際の識別子を表すものではなく、「値なし」や「未設定」の状態を示すためによく使われます。データベースの NULL や、プログラミング言語の nil / null に近い概念です。

UUID 完全ガイド

UUID の内部構造

UUID は 128 bit で構成され、標準表示形式では 32 桁の hexadecimal character を 4 つの hyphen で区切ります:

time_low - time_mid - time_hi_and_version - clock_seq_hi_and_reserved clock_seq_low - ノード

550e8400-e29b-41d4-a716-446655440000 例:

  • 550e8400 — time_low(4 bytes)
  • e29b — time_mid(2 bytes)
  • 41d4 — time_hi_and_version(version 4 は上位 bit で示されます)
  • a7 — clock_seq_hi_and_reserved(Variant + シーケンス番号上位)
  • 16 — clock_seq_low(下位シーケンス番号)
  • 446655440000 — node(6 bytes、通常は MAC または乱数)

UUID バージョン早見表

v1

時間 + MAC

v3

MD5 + Namespace

v4

完全ランダム

v5

SHA-1 + Namespace

v6

時刻タイプで並べ替え

v7

Unix 時刻 + 乱数

v8

カスタム形式

Nil

すべてゼロ