UUID チェッカー

UUID チェッカー

最大 100 件の UUID を 1 行ずつ入力します。空行は無視されます。

UUID は 128 ビットの値で、16 進数 32 桁を 8-4-4-4-12 の形に区切って表記します。ただ、一見 UUID に見えても実は UUID ではない文字列は意外と多いものです。ログやデータベースのエクスポート、設定ファイルから 1 件、または 1 列まとめて(1 行に 1 つ)貼り付けてください。行ごとに、形式が正しいか、バージョン(1 から 8)、バリアント、Nil UUID か Max UUID か、そしてバージョン 1・6・7 であれば作成された正確な日時を判定します。

UUID の検証のしかた

  1. 1

    UUID を貼り付ける

    1 行に 1 つ、最大 100 行です。大文字・小文字のどちらも使え、空行は無視されます。

  2. 2

    受け付ける形式を選ぶ

    「柔軟」では {波括弧}、urn:uuid: の接頭辞、ハイフンなしの 32 桁も受け付けます。「厳密」ではハイフン付きの標準形だけを受け付けます。

  3. 3

    行ごとの判定を確認する

    各行は「有効」「形式は正しいが非標準」「無効」のいずれかで表示され、バージョン、バリアント、作成日時(ある場合)、失敗した場合はその理由も確認できます。

3 つの判定の意味

すべての行は、次の 3 つのうちちょうど 1 つに分類されます。

  • 有効:形式が正しく、バリアントのビットが RFC 9562 の UUID を示しており(第 4 グループの先頭の桁が 8、9、a、b のいずれか)、バージョンの桁が 1 から 8 の範囲にあるもの。Nil UUID(00000000-0000-0000-0000-000000000000)と Max UUID(ffffffff-ffff-ffff-ffff-ffffffffffff)は標準で定められた特別な値で、有効として扱われます。
  • 形式は正しいが非標準:32 桁の UUID としては正しい形ですが、バージョンの桁が 0 または 9 から f である、あるいはバリアントのビットが別のレイアウト(予約済みの NCS や Microsoft の範囲、将来用の予約範囲)に属しているもの。古いシステムや他のプラットフォームの GUID にこうした値が見られます。ツールは検出した内容を表示しますが、このような値から作成日時は読み取りません。
  • 無効:そもそも UUID ではないもの。詳細欄に理由が表示されます。16 進数ではない文字が含まれている、桁数が違う(検出した桁数も表示)、ハイフンの位置が違う、厳密モードで許可されない囲み方をしている、などです。

バージョンについて

バージョン 生成方法 内部の時刻
1 時計の時刻とノード識別子 あり(1582 年 10 月 15 日からの 100 ns 単位のカウント)
2 DCE セキュリティ:時刻の一部がローカル識別子に置き換わる このツールでは読み取らない
3 名前空間と名前の MD5 ハッシュ なし
4 ランダム なし
5 名前空間と名前の SHA-1 ハッシュ なし
6 バージョン 1 の時刻ビットを並べ替え、時系列順にソートできるようにしたもの あり(バージョン 1 と同じ時計)
7 48 ビットの Unix 時間(ミリ秒)に続いてランダムなビット あり(1970 年からのミリ秒)
8 アプリケーションが決める独自レイアウト なし

バージョン 6・7・8 と Nil・Max の値は、RFC 4122 に代わる RFC 9562 で定義されています。

タイムスタンプの読み方

バージョン 1 と 6 には、グレゴリオ暦への改暦日にあたる 1582 年 10 月 15 日からの 100 ナノ秒単位のカウントが 60 ビットで格納されています。バージョン 7 は先頭の 48 ビットに Unix ミリ秒を格納しています。このツールは時刻を UTC で、日本語表記と、ミリ秒付きの ISO 8601 形式の 2 通りで表示するので、そのままクエリに貼り付けられます。たとえば、よく知られた DNS 名前空間の UUID 6ba7b810-9dad-11d1-80b4-00c04fd430c8 はバージョン 1 の値で、1998-02-04 22:13:53.151 UTC に作成されたものです。

「有効」でも保証されないこと

  • 有効な UUID とは、形式が正しいということです。信頼できる生成元で作られたこと、一意であること、データベースに存在することまでは示しません。
  • バージョン 4 の UUID はランダムなので、値そのものから生成方法を確かめることはできません。
  • バージョン 1 のタイムスタンプは、生成したマシンの時計の値そのままです。誤っていたり、意図的に設定されていたりする場合があります。

よくある質問

いいえ。16 進数の桁は大文字と小文字を区別しないので、550E8400-E29B-41D4-A716-446655440000 とその小文字版は同じ値です。出力には小文字が推奨されており、入力がその形と異なる場合は、その下に小文字のハイフン付き形式を表示します。

バージョンの桁(第 3 グループの先頭の桁)が 1 から 8 の範囲にない、またはバリアントのビット(第 4 グループの先頭の桁)が 8、9、a、b のいずれでもないためです。適当に打ち込んだ 16 進数や、他のシステムの GUID にはこの形のものがあります。128 ビットの値としては正しい形ですが、RFC 9562 のレイアウトには従っていません。

「柔軟」は実際のデータでよく見かける形を受け付けます。ハイフン付きの標準形、.NET や Windows のレジストリのように波括弧で囲んだ形、urn:uuid: の接頭辞付き、ハイフンなしの 32 桁です。「厳密」はハイフン付きの標準形だけを受け付けます。多くの JSON API やデータベースが期待するのはこの形です。

最大 100 行まで、貼り付けるテキストは 4,000 文字までです。空行は無視されます。100 行を超えて貼り付けた場合は、先頭の 100 行を確認し、その旨をお知らせします。

いいえ。貼り付けたテキストは判定のためにサーバーへ送信され、ステップを移動する際にページのリンクにも付加されるため、結果をブックマークしたり共有したりできます。アカウントやプロフィールには保存されません。リンクに載せたくない識別子は貼り付けないでください。

関連ツール

このツールは他の言語でも利用できます