UUID生成ツール:UUID v4・v7の生成と検証

UUID(GUID)をブラウザー上で生成します。ランダムなバージョン4と、時刻順に並ぶバージョン7(RFC 9562)に対応。「検証」モードでは、UUIDが正しい形式か、どのバージョンか、いつ作られたかがわかります。

一度に1〜1,000個
入力内容はこのブラウザーにのみ保存されます。

結果

結果
–
生成したUUID
    UUIDの構造

    計算方法

    UUID(Universally Unique Identifier、MicrosoftではGUIDと呼びます)は、中央の登録機関なしで世界中で一意になる128ビットの識別子です。32桁の16進数を5つのグループに分けてxxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxxと書きます。Mの桁がバージョン、Nの上位ビットがバリアント(現在のUUIDでは8、9、a、b)です。現行の規格はRFC 9562(2024年)で、RFC 4122を置き換えています。

    UUIDの生成・検証の手順

    1. 操作を選びます。UUIDを生成するか、UUIDを検証・解析するかです。
    2. 生成する場合は、バージョン4(ランダム)かバージョン7(時刻順)を選び、個数を入力し、必要に応じて大文字やハイフンを設定します。
    3. 一覧をコピーします。検証モードではUUIDを貼り付けると、バージョン、バリアント、タイムスタンプが表示されます。

    例:UUID 01932c07-209c-7000-8000-000000000000はバージョン7です。先頭48ビット(01932c07209c)はミリ秒単位のUnix時間1731610484892、つまり2024年11月14日18時54分44.892秒(UTC)を表します。

    バージョン4とバージョン7、どちらを使う?

    v7のUUIDを一度に大量に生成すると、ほとんどが同じミリ秒に入ります。その場合、ツールはランダム部分を1ずつ増やし(RFC 9562 §6.2、方法2)、一覧が必ず昇順になるようにしています。

    乱数の品質は?

    ランダムなビットは、ブラウザーの暗号学的に安全な乱数生成器crypto.getRandomValues()から得ています。crypto.randomUUID()と同じ仕組みです。サーバーへの送信や保存は一切ありません。122ビットのランダム値では、重複が1つでも起きる確率が50%に達するまでに約270京個(2.7×1018)のUUIDが必要です。

    UUIDの検証と解析

    「検証」モードでは、既存のUUIDを分解します。長さと文字をチェックし、バージョンとバリアントを読み取り、バージョン1・6・7では埋め込まれたタイムスタンプをUTCとローカル時刻に変換します。バージョン1と6は1582年10月15日(グレゴリオ暦の開始日)からの100ナノ秒単位、バージョン7は1970年1月1日からのミリ秒を数えます。特別な値として、Nil UUID(すべて0)とMax UUID(すべてf)があります。

    よくある質問

    UUIDとGUIDの違いは何ですか?

    中身は同じです。GUID(Globally Unique Identifier)は、同じ128ビット形式に対するMicrosoftの呼び名です。Windowsや.NETのGUIDは、通常バージョン4のUUIDです。

    UUIDが重複することはありますか?

    理論上はありえますが、実際にはまず起きません。バージョン4には2122通りの値があります。毎秒10億個生成しても、重複の確率が50%になるまで約86年かかります。ただし、ここで使っているcrypto.getRandomValues()のような質の高い乱数生成器が前提です。

    UUIDの生成方法は?

    このページで「UUIDを生成」を選び、バージョンと個数を指定するだけです。プログラムでは、JavaScriptならcrypto.randomUUID()、Pythonならuuid.uuid4()でバージョン4のUUIDを生成できます。

    データベースにはどのバージョンを使うべきですか?

    バージョン7です。先頭がタイムスタンプなので新しいレコードが順番に挿入され、Bツリーインデックスがコンパクトで高速に保たれます。PostgreSQL 18にはこのための組み込み関数uuidv7()があります。

    UUIDがいつ作られたかわかりますか?

    バージョン1・6・7ならわかります。「UUIDを検証・解析」を選んでください。バージョン4はランダム値だけなので、時刻も機器もわかりません。

    大文字と小文字、どちらが正しいですか?

    どちらも有効です。RFC 9562は出力には小文字を使い、入力は大文字・小文字を区別せずに扱うよう定めています。Microsoftのツールには、GUIDを波かっこ付きの大文字で表示するものもあります。

    出典・根拠

    更新日:

    関連ツール