AZ Tools

UUID インスペクタ (バージョン・バリアント・時刻)

開発

UUID は単なるランダム文字列ではありません — 128 ビットにバージョンとバリアントが符号化され、時刻ベースのバージョンは実際のタイムスタンプを持ちます。このインスペクタは任意の UUID(標準・波括弧・urn:uuid: 形式)を解析して、それが正確に何かを示します:バージョン番号と名前(v1 時刻+ノード、v2 DCE、v3 MD5 名前ベース、v4 ランダム、v5 SHA-1 名前ベース、v6 並べ替え時刻、v7 Unix エポック時刻、v8 カスタム)、およびバリアント(RFC 4122、レガシー NCS、Microsoft)。v1・v6 では 1582-10-15(グレゴリオ暦改革)以降の 60 ビットタイムスタンプを実際の日付に復号し、クロックシーケンスとノードも表示し、ノードが実際のユニキャスト MAC かランダムなマルチキャストアドレスかを示します。v7 では 48 ビットの Unix ミリ秒タイムスタンプを読み取ります。nil と max の UUID も認識します。「いつ作成された?」や「本当に v4?」に素早く答える方法です。すべてローカルで動作し、アップロードされません。

標準形017f22e2-79b0-7cc3-98c4-dc0c0c07398f
バージョン7 — Unix エポック時刻
バリアントRFC 4122
タイムスタンプ (UTC)2022-02-22T19:22:22.000Z
相対4y 4mo 前

v1/v6 はグレゴリオ暦タイムスタンプ、v7 は Unix-ms タイムスタンプを持ち、v4 はランダムです。バリアントは推測でなくビットから読みます。

使い方

  1. UUID を貼り付け(ダッシュ・波括弧・urn:uuid: 接頭辞の有無は問わない)。
  2. バージョンとバリアントを読みます。v1/v6/v7 は生成タイムスタンプが自動復号されます。
  3. 標準形式やタイムスタンプはコピーボタンを使ってください。

よくある質問

どのバージョンがタイムスタンプを持ちますか?
v1 と v6 は 1582-10-15(グレゴリオ暦改革)以降の 100 ナノ秒間隔の 60 ビットカウントを持ち、本ツールが通常の日付に変換します。v7 は最初のビットに 48 ビットの Unix ミリ秒タイムスタンプを持ちます。v3・v4・v5・v8 は復号可能な時刻を持ちません — v4 は完全ランダム、v3/v5 は名前のハッシュ、v8 は実装定義です。
バージョンはどう決まりますか?
バージョンは 7 番目のバイトの上位ニブル(3 番目のダッシュグループの最初の 16 進桁)です。バリアントは 9 番目のバイトの上位ビットから来ます:10x は RFC 4122、0xx はレガシー NCS 配置、110x は Microsoft GUID 配置です。どちらもビットから直接読むので正確です。
ノード/MAC は何を教えますか?
v1 または v6 UUID では最後の 48 ビットがノードです。古典的な v1 は生成マシンの MAC アドレスを使いました(プライバシー問題)が、現代のライブラリはマルチキャストビットを立てたランダム値を使います。本ツールはノードを表示し、そのマルチキャストビットがランダムノードか実際のユニキャスト MAC かを示します。
復号された時刻は信頼できますか?
UUID に符号化されたそのものなので、生成器の時計が正確で本当に表明どおりのバージョンであれば信頼できます。偽造や手編集された UUID は任意のタイムスタンプを持てるため、時刻は参考であり証拠ではありません。

関連ツール