← ハシトシステム トップ English ツール ブログ
UUID を判定する

波括弧つき {...}urn:uuid: 接頭辞、大文字表記、ハイフン無しの32桁は、すべて同じUUIDとして扱います。

UUIDの読み方

バージョンとバリアントの位置

UUIDは16進32桁を 8-4-4-4-12 に区切って書きます。3つ目のかたまりの先頭1文字がバージョン4つ目のかたまりの先頭1文字がバリアントです。バリアントは 8 9 a b のいずれかであれば標準のUUID(RFC 4122 と後継の RFC 9562)を意味します。それ以外は古い方式か、Microsoft の旧形式です。

時刻を含むバージョン・含まないバージョン

時刻を含むのは v1・v6・v7 です。v7 は先頭48ビットがUnixエポックからのミリ秒なので、16進の先頭12桁をそのまま数値として読めば日時になります。v1 と v6 は1582年10月15日を起点とする100ナノ秒単位で、Unix時間に直すには 10000 で割ってから 12219292800000 ミリ秒を引きます。v4 は乱数、v3 と v5 は名前のハッシュなので、時刻は取り出せません。

ノードがMACアドレスかどうかの見分け方

v1 と v6 の末尾12桁はノードと呼ばれ、本来は生成した機器のMACアドレスが入ります。ただし、そのままだと機器が特定できてしまうため、乱数で埋める実装も多くあります。見分け方は先頭バイトの最下位ビット(マルチキャストビット)で、1 なら乱数由来です。このツールはそこを読んで、MACアドレスの可能性があるかどうかを表示します。

よくある質問(FAQ)

UUIDのバージョンはどこを見れば分かりますか?

ハイフンで区切った3つ目のかたまりの先頭1文字がバージョン番号です。たとえば 017f22e2-79b0-7cc3-98c4-dc0c0c07398f なら 7cc3 の先頭が 7 なので UUID v7 です。このツールは表記ゆれを正規化したうえで、その桁を読んで判定します。

UUID v7 から生成時刻を取り出せますか?

取り出せます。v7 は先頭48ビット(16進で12桁)がUnixエポックからのミリ秒なので、その部分を数値として読むだけです。v1 と v6 も時刻を含みますが、こちらは1582年10月15日からの100ナノ秒単位なので換算が必要です。v4 は乱数だけなので時刻は取り出せません。

入力したUUIDはどこかへ送られますか?

送られません。判定と時刻の計算はすべてブラウザ内のJavaScriptで行われ、UUIDがサーバーへ送信されることはありません。