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 グループに分けたものです。
UUID の重要な価値は、中央の登録機関を必要とせず、グローバルに一意な識別子を生成できる点です。これはデータベースの主キー、分散トレーシング、作業ステージの識別などで非常に重要です。
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。UUID の重要な価値は、中央の登録機関を必要とせず、グローバルに一意な識別子を生成できる点です。これはデータベースの主キー、分散トレーシング、作業ステージの識別などで非常に重要です。
UUID v1〜v8 にはどのような違いがありますか?
| バージョン | 時間基準 | ランダム性 | 主な用途 |
|---|---|---|---|
| v1 | 100ns 間隔(1582-10-15) | クロック + ノード | 従来型クロノタイプ |
| v3 | — | MD5 Hash | 名前タイプ(MD5) |
| v4 | — | 122 ビットのランダム値 | 最も一般的なランダム UUID |
| v5 | — | SHA-1 Hash | 名前タイプ(SHA-1) |
| v6 | 100ns 間隔(ソート最適化) | クロック + ノード | 並べ替え可能な時刻型 |
| v7 | Unix ミリ秒 | 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 の利用をおすすめします。
主な変更点:
• 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 の方が適した選択です。
• 並べ替え可能:上位 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 を使っているかすばやく確認できます。
• 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 は同種の識別子として扱えます。
ごく小さな違いとして、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
すべてゼロ