UUID ジェネレーター(v4・v7・v1)

RFC 9562 の UUID を一括生成:ランダムの v4、時刻順の v7、タイムスタンプの v1、Nil と Max。大文字、波かっこ、ハイフンなしも選べます。crypto.getRandomValues を使用。

最大 1000

出力

crypto.getRandomValues による 122 ビットの乱数です。衝突の確率は無視できるほど小さいです。

UUID ジェネレーターとは?

UUID(汎用一意識別子)は、8-4-4-4-12 の形式で 32 桁の 16 進数として書かれる 128 ビットの ID です。このツールは、RFC 9562 に従い、バージョン 4(ランダム)、バージョン 7(時刻順)、バージョン 1(タイムスタンプ)、および特別な Nil と Max の値の UUID を、一度に最大 1,000 個生成します。

UUID ジェネレーターの使い方

  1. バージョン を選びます(通常はバージョン 4、データベースのキーにはバージョン 7)。
  2. 必要な UUID の 個数 を設定します。
  3. 必要に応じて 大文字 にチェックを入れる、ハイフン のチェックを外す、または 波かっこ { } で囲む にチェックを入れます。
  4. 再生成 をクリックして新しいバッチを作り、リストをコピーまたはダウンロードします。

例

入力
Version 7, How many 2
出力
01a16811-eb97-7688-838a-aa989505507e
01a16811-eb97-7689-a2db-f00f7ac48f06

どちらも同じミリ秒のタイムスタンプで始まり、カウンターにより 2 つ目が 1 つ目の後に並びます。実際の値は異なります。

UUID ジェネレーターを使うべき場面

一般的な一意の ID(API リソース、ファイル名、相関 ID)には v4 を使います。データベースの主キーには、時刻順の値が B-tree インデックスをコンパクトに保つため v7 を使います。システムが要求しない限り v1 は避け、UUID をシークレットやアクセストークンとして使わないでください。UUID は一意であって秘密ではありません。

UUID ジェネレーターの仕組み

v4:crypto.getRandomValues の 16 バイトの乱数で、バージョンのニブルを 4、2 ビットのバリアントを 10 に設定し、122 ビットの乱数が残ります。v7:先頭 48 ビットが現在の Unix 時刻(ミリ秒、ビッグエンディアン)で、その後にバージョン、12 ビットのカウンター(同じミリ秒内に作られた UUID も順序どおりに並ぶ)、62 ビットの乱数が続きます。v1:1582 年 10 月 15 日からの 100 ナノ秒間隔の 60 ビットのカウント、14 ビットのクロックシーケンス、48 ビットのノード ID で、このツールは MAC アドレスの代わりに、RFC 9562 が認めるとおりマルチキャストビットを立てたランダムなノードを使います。v1/v7 に埋め込まれたタイムスタンプはデコードされ、リストの下に表示されます。

一般的な使用例

  • データベースの行やテストフィクスチャの主キーを作成する
  • ログ用のリクエスト ID や相関 ID を生成する
  • アップロードされたファイルに衝突しない名前を付ける
  • 一意の識別子でモックデータを作成する

よくある質問

UUID v4 の値が 2 つ衝突することはありますか?

理論上はありますが、実際にはありません。122 ビットの乱数なら、重複が 1 つ生じる確率が 50% になるには、約 2.7 × 10^18 個の UUID を生成する必要があります。

UUID v4 と v7 の違いは何ですか?

v4 は完全にランダムです。v7 はタイムスタンプで始まるため、後で作られた値が先に作られた値の後に並び、データベースのインデックスに適していて、作成時刻も読み取れます。

UUID と GUID は同じですか?

はい。GUID は同じ 128 ビット形式の Microsoft での呼び名です。レジストリの波かっこ付きのような Windows 固有の形式には、GUID ジェネレーターを使ってください。

v1 は MAC アドレスを漏らしますか?

ここでは漏らしません。ノードのフィールドはランダムなバイト列で埋められ、ハードウェア由来でないことを示すマルチキャストビットが立てられます。

おすすめの次のステップ

他のカテゴリを見る