UUIDデコードとは何ですか?
UUIDデコード UUIDを解析して抽出できる情報のプロセスは:
- Version:48-51ビット位置にある4ビットに基づくUUIDのバージョン(1-8)
- Variant:ビット64-65に基づくUUIDのバリアント(通常はRFC 4122)
- Components:バージョンに基づいてタイムスタンプ、ノードID、その他のデータを抽出すること
- 生成時刻:時間ベースのUUIDの場合(v1、v6、v7)
Example: 123e4567-e89b-12d3-a456-426614174000 はタイムスタンプを含むVersion 1 UUIDです 2228-06-25T20:01:28.545Z (JavaScriptのミリ秒精度で表示した場合)。
UUID構造の概要
| Format | Description |
|---|---|
| 8-4-4-4-12 | ハイフンで区切られた32の16進桁 |
| バージョンビット | ビット48-51(13桁目) |
| バリアントビット | ビット64-65(17桁目) |
バージョン番号は3番目のグループの最初の16進桁として現れます(例: 123e4567-e89b-12d3-a456-426614174000 (バージョン1の場合)。
バージョン別デコード
| Version | デコードできるもの |
|---|---|
| UUID v1 |
|
| UUID v3/v5 |
|
| UUID v4 |
|
| UUID v6 |
|
| UUID v7 |
|
UUIDからのタイムスタンプ抽出
| UUIDの種類 | 時間抽出方法 | Epoch |
|---|---|---|
| UUID v1 | タイムスタンプ成分を並べ替えてbits 0-31、32-47、48-59を結合します | 1582年10月15日 |
| UUID v6 | bits 0-47をbits 52-63と結合します。bits 48-51はバージョンであり除外されます | 1582年10月15日 |
| UUID v7 | bits 0-47(Unixミリ秒)を抽出します | 1970年1月1日 |
UUID検証ルール
- 形式チェック:ハイフンで区切られた8-4-4-4-12の16進数字
- バージョンチェック:13文字目は1-8でなければなりません
- バリアントチェック:17文字目はRFC 4122の場合、8、9、A、またはBでなければなりません
基本的なUUID検証の正規表現:
^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$UUID v7 タイムスタンプの例
017f22e2-79b0-7cc3-98c4-dc0c0c07398f はRFC 9562のUUIDv7テストベクタです。その最初の48ビットはUnixミリ秒で、デコードすると 2022-02-22T19:22:22.000Z, 1645557742000 ミリ秒、または 1645557742 seconds.
新しいUUID v7を生成する、または UUID v7、または続けて Unixタイムスタンプ変換器。これらのリンクには入力したUUIDは含まれていません。
実用的な応用
- フォレンジック解析:IDがいつ作成されたかを特定すること
- Debugging:IDタイムスタンプによるシステム挙動の追跡
- Auditing:時系列の整合性を検証すること
- 形式チェック:不正なIDの検出;有効なUUIDであることは真正性を証明しません
- データ復旧:時間的関係の再構築
- システム移行:レガシーなUUID実装の詳細を理解すること
MACアドレス抽出(v1/v6)
UUID v1およびv6では、生成時にランダム化されていなければノード識別子(MACアドレス)を抽出できることがよくあります:
- UUIDの末尾12桁(48ビット)を抽出します
- XX:XX:XX:XX:XX:XXの形式でコロン区切りにします
- マルチキャストビットを調べてMACアドレスが実在かランダムかを確認します
最初のバイトのビット0x01がセットされている場合、それは実際のMACアドレスではなくランダム化されたノードIDである可能性が高いです。
よくある質問
UUID v4が作成された正確な時刻を特定できますか?
いいえ。UUID v4は完全にランダムでタイムスタンプ情報を含まないため、UUID v4の値から作成時刻を特定することはできません。
時間ベースのUUIDのタイムスタンプの精度はどのくらいですか?
UUID v1/v6のタイムスタンプは100ナノ秒精度を持ちます。UUID v7はミリ秒精度です。ただし、実際のシステムクロックの精度は異なる場合があります。
UUIDのバージョン間で変換できますか?
いいえ。異なるバージョンは構造が根本的に異なるため、同じ識別子値を保持したまま直接変換することはできません。
UUIDを生成したコンピュータを特定できますか?
ノードIDがランダム化されていない場合、UUID v1には生成元システムのMACアドレスが含まれている可能性があります。ただし、多くの現代の実装ではプライバシーのためにこれをランダム化しています。
UUIDが有効かどうかをどのように判断しますか?
形式を確認し(8-4-4-4-12の16進桁)、バージョン桁(13文字目)が1-8であることを検証し、バリアントビット(RFC 4122のUUIDでは17文字目が8、9、A、またはBである)を確認します。