UUID v3とは?
UUIDバージョン3 はRFC 4122の名前空間ベースの128ビット識別子(36文字の文字列)で、MD5ハッシュを使用します。構成は以下の通りです:
- 名前空間UUID: 事前定義またはカスタムのUUID名前空間
- Name: ハッシュ化されるユーザー提供の文字列
- MD5ハッシュ: 名前空間と名前の組み合わせに適用される
フォーマット例: 9125a8dc-52ee-365b-a5aa-81b0b3681cf6
UUID v3の動作方法
- 名前空間UUIDを選択する(事前定義またはカスタム)
- 名前空間UUIDのバイトと名前文字列のバイトを連結する
- 連結された値のMD5ハッシュを計算する
- バージョンビットを0011(バージョン3)に設定する
- バリアントビットを10(RFC 4122標準)に設定する
- ハイフン付きの32桁の16進数として組み立てる:8-4-4-4-12フォーマット
利点と考慮点
Advantages | Considerations |
---|---|
|
|
UUID v3の構造
Bits | Content |
---|---|
0-47 | MD5ハッシュの最初の48ビット |
48-51 | バージョン(v3の場合0011) |
52-63 | MD5ハッシュの次の12ビット |
64-65 | バリアント(RFC4122の場合10) |
66-127 | MD5ハッシュの残りの62ビット |
事前定義された名前空間
Name | UUID | Purpose |
---|---|---|
DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | ドメイン名 |
URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 | URLs |
OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 | ISO OID |
X.500 DN | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 | X.500識別名 |
UUID v3と他のバージョンの比較
Version | 基づくもの | 使用例 | Privacy |
---|---|---|---|
UUID v1 | 時間 + MAC | 時間順のID | ⚠️ MACを明らかにする |
UUID v3 | 名前空間 + MD5 | 決定論的ID | ✅ プライベート |
UUID v4 | Random | 安全なランダムID | ✅ プライベート |
UUID v5 | 名前空間 + SHA-1 | 決定論的ID | ✅ プライベート |
UUID v6 | 時間(再配置) | ソート可能なID | ⚠️ MACを明らかにする |
UUID v7 | 時間 + ランダム | ソート可能なID | ✅ プライベート |
一般的な使用例
- URLベースの識別子: URLからUUIDを作成する
- ドメイン固有のID: DNS名をUUIDに変換する
- 決定論的ファイルID: コンテンツアドレッシング
- ユーザーID: メールまたはユーザー名から
- 設定エントリ: 一貫したキーのために
- ドキュメント参照: コンテンツ管理システム
よくある質問
UUID v3は暗号学的に安全ですか?
そうではありません。UUID v3はMD5を使用しており、既知の暗号学的弱点があります。より高いセキュリティが必要な場合は、UUID v5(SHA-1)またはUUID v4(ランダム)を検討してください。
同じ入力は常に同じUUID v3を生成しますか?
はい。UUID v3は決定論的であり、同じ名前空間と名前は常に同一のUUIDを生成するため、再現可能なIDに便利です。
UUID v3とv5の違いは何ですか?
動作は同じですが、v3はMD5を使用し、v5はSHA-1を使用します。SHA-1はMD5より暗号学的に強いため、一般的にUUID v5が推奨されます。
独自の名前空間を作成できますか?
はい。RFC 4122は標準の名前空間(DNS、URL、OID、X.500)を定義していますが、有効なUUIDを使ってカスタム名前空間を作成できます。
UUID v3はセキュリティトークンに適していますか?
いいえ。MD5の弱点と決定論的な性質のため、UUID v3はセキュリティトークンや予測不可能性が必要な用途には推奨されません。