UUID生成・検証ツール

概要

UUID ジェネレーターは v1〜v7 のすべてのバージョンと NIL・MAX の UUID を生成でき、一度に最大 100 個まで作成できます。組み込みのチェッカーが任意の UUID 文字列を検証し、正規化された形式・バージョン・RFC 4122 バリアントを返します。

バージョンの選び方

v4(ランダム)

  • 完全にランダムで、時刻やハードウェア情報を含まない
  • 汎用的な識別子として最も一般的な選択
  • 大量挿入を行うデータベースの主キーに使うと、ランダム値により B-tree インデックスが断片化する

v7(データベースキーに推奨)

  • 最初の 48 ビットがミリ秒精度の Unix タイムスタンプ
  • 作成時刻で自然にソートされ、インデックスの断片化を防ぐ
  • MAC アドレスなし — 時系列性を保ちながらハードウェア情報を漏らさない

v5(決定的生成)

  • 同じ名前空間 + 同じ名前は常に同じ UUID を生成
  • SHA-1 使用。冪等な ID 生成に適している
  • 例: ドメイン example.com は常に cfbff0d1-9375-5685-968c-48ce8b15ae17 を生成

v1(時刻 + MAC)

  • 生成元マシンの MAC アドレスを含む — ハードウェア情報が漏れる可能性あり
  • 時系列性はあるが、タイムスタンプフィールドが UUID の中央にあるため v7 ほどソート効率が良くない
  • 新規プロジェクトでは避け、v6 か v7 を使う

v3 と v5 の違い

どちらも名前空間と名前から決定的な UUID を生成します。v3 は MD5、v5 は SHA-1 を使用します。新規プロジェクトでは v5 を選んでください。v3 は明示的に必要とするレガシーシステムとの互換性のためだけに存在します。

v3/v5 の名前空間と名前

デフォルトの名前空間は DNS 名前空間 UUID 6ba7b810-9dad-11d1-80b4-00c04fd430c8 です。異なる名前空間を使うと同じ名前でも異なる UUID が生成されるため、名前空間は分離キーとして機能します。任意の有効な UUID をカスタム名前空間として指定できます。

チェッカーが返す情報

チェッカーに任意の文字列を貼り付けると以下が返されます。

  • フォーマットが有効かどうか
  • 小文字の正規化された形式
  • バージョン(v1〜v7、非標準の場合は「不明」)
  • バリアント: RFC 4122(標準)、NCS(レガシー)、Microsoft(GUID 形式)、Future
  • NIL(全ゼロ)または MAX(全 F)かどうか

フォーマットが無効な文字列には単純に「無効」が返されます。最も近いバージョンを推測することはありません。