UUID v4とは?
UUIDバージョン4 はRFC 4122に基づくランダムベースの128ビット識別子(36文字の文字列)です。構成は以下の通りです:
- ランダム値: 122ビットのランダムデータ
- バージョンビット: バージョン4を示す4ビット (0100)
- バリアントビット: RFC 4122バリアントを示す2ビット (10)
フォーマット例: f47ac10b-58cc-4372-a567-0e02b2c3d479
UUID v4の動作
- 暗号学的に強力な122ビットのランダムデータを生成する
- バージョンビットを0100(バージョン4)に設定する
- バリアントビットを10(RFC 4122標準)に設定する
- ハイフン付きの32桁の16進数として組み立てる:8-4-4-4-12形式
利点と考慮点
Advantages | Considerations |
---|---|
|
|
UUID v4の構造
Bits | Content |
---|---|
0-47 | ランダムデータ |
48-51 | バージョン (v4のための0100) |
52-63 | ランダムデータ |
64-65 | バリアント (RFC4122のための10) |
66-127 | ランダムデータ |
UUID v4と他のバージョンの比較
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 | ✅ プライベート |
一般的な使用例
- データベースキー: 分散アプリケーション
- セキュリティトークン: 認証システム
- ワンタイム識別子: 一時的アクセス
- マルチテナントシステム: 衝突防止
- コンテンツ識別子: ドキュメント管理
- APIリクエストID: リクエスト追跡
よくある質問
UUID v4は暗号学的に安全ですか?
はい。UUID v4は暗号学的に強力な乱数生成器に依存しており、セキュリティに敏感なアプリケーションに適しています。
UUID v4の値は衝突する可能性がありますか?
理論的には可能ですが、実際にはほとんどありません。122ビットのランダムデータにより、数十億のUUIDが生成されても衝突の確率は非常に低いです。
UUID v4から作成時間を抽出できますか?
いいえ。時間ベースのUUID(v1、v6、v7)とは異なり、UUID v4はタイムスタンプ成分を持たず、ランダムデータのみで構成されています。
UUID v4の値は作成時間でソートできますか?
いいえ。UUID v4の値はランダムであり、作成時間とは無関係です。ソート可能なIDが必要な場合は、UUID v1、v6、またはv7を検討してください。
UUID v4の値はシステム情報を公開しますか?
いいえ。UUID v4はバージョンとバリアントビットを含む完全にランダムなデータで構成されており、システム情報の漏洩はありません。