UUID ジェネレーター
ブラウザ上であらゆるバージョンの UUID を生成します。ランダムな v4、時刻ベースの v1、ソートに向く v6・v7、名前空間と名前から導く v3・v5、さらに特別な NIL と MAX まで、すべてが一つのパネルにそろっています。単体でも一括でも生成でき、大文字への切り替え、ハイフンの除去、波括弧での囲みができ、どの行もワンクリックでコピーできます。すべてローカルで計算されるため、識別子がサーバーに送られることはありません。
- すべてのバージョンを一か所で:v1、v3、v4、v5、v6、v7、そして NIL と MAX の特別値
- 名前ベースの v3・v5 は標準の DNS、URL、OID、X.500 名前空間とカスタムに対応します
- 一括生成、行ごとのクリックコピー、全体コピー、プレーンテキストのダウンロードに対応します
- 出力形式は大文字、ハイフンなし、波括弧囲みを切り替えられます
- すべてブラウザ内で生成され、識別子が端末の外に出ることはありません
ランダムで 122 ビットの乱数を持ち、汎用途で最もよく使われます。
概要
すべての UUID バージョンを一つのパネルにまとめ、用途に合った種類を選び、必要な数だけ生成し、コードベースに合わせて整形できます。スクリプトやコマンドを組み立てる必要はありません。
- 01
ランダム系:v4、v1、v6、v7
ランダム性や時刻を持つバージョンを生成します。v4 は完全ランダム、v1 は時刻ベース、v6 と v7 は生成時刻で並べやすく、データベース書き込みの局所性が高くなります。
- 02
名前ベース:v3 と v5
名前空間と名前から安定した UUID を導きます。同じ名前空間と名前は常に同じ値になり、決定的な識別子が必要な場面に向いています。
- 03
標準名前空間とカスタム
定義済みの DNS、URL、OID、X.500 名前空間を選べるほか、任意の有効な UUID をカスタム名前空間として貼り付け、独自の方式に使えます。
- 04
単体または一括
UUID を 1 個だけでも、最大千個まで一度にでも生成でき、よく使う個数のクイックプリセットでテストデータを手早く用意できます。
- 05
出力の整形
大文字への切り替え、コンパクトな保存のためのハイフン除去、レジストリ風の識別子に合わせた波括弧囲みができます。
- 06
コピーとエクスポート
任意の 1 行をワンクリックでコピー、全体をまとめてコピー、または一覧をプレーンテキストとしてダウンロードできます。
使い方
バージョンを選んでからコピーできる一覧まで、数ステップで進められます。識別子が 1 個でも、一括のテストデータでも同じです。
- 01
UUID のバージョンを選びます。汎用のランダム ID には v4、作成時刻順のキーが欲しいときは v7 を選びます。
- 02
v3 または v5 では、名前空間を選んで名前を入力するか、独自のカスタム名前空間 UUID を貼り付けます。
- 03
ランダム系では必要な個数を設定するか、個数プリセットを押して手早く一括生成します。
- 04
必要に応じて形式を調整します。大文字、ハイフンなし、波括弧囲みから選べます。
- 05
1 行をコピー、全体をコピー、またはテキストファイルとしてダウンロードして、スクリプトやテストに使います。
詳細
UUID はデータベース、メッセージキュー、分散システム、テストデータなど広く現れ、場面ごとに異なるバージョンと形式が求められます。
- UUID ファミリー全体に対応:v1、v3、v4、v5、v6、v7、および NIL と MAX の特別値
- 名前ベースの v3・v5 は標準の DNS、URL、OID、X.500 名前空間や任意のカスタム UUID を受け付けます
- v7 はおおむね時刻順に並ぶキーを生成し、B ツリーのデータベースインデックスで高い書き込み局所性を保ちます
- v6 は v1 のフィールドを並べ替え、タイムスタンプを保ちつつ古い識別子が新しいものより前に並びます
- 一括生成は一度に最大千個の値を作り、データベースの投入や負荷テストに使えます
- 行ごとのコピー、全体コピー、テキストダウンロードで、単発の用途と一括テストデータの両方に対応します
- 大文字、ハイフンなし、波括弧囲みの形式が、保存やプラットフォームごとの慣習に対応します
- 不正なカスタム名前空間は生成前に弾かれ、v3・v5 が常に有効な結果を返します
- ここでの時刻ベースのバージョンはランダムなノード識別子を使い、実際のハードウェアアドレスを露出しません。名前ベースのバージョンは標準ハッシュで生成します
- すべての生成はブラウザ内で行われ、社内システムの識別子がサーバーに出ることはありません
活用シーン
どの UUID バージョンを選ぶかは設計判断であり慣習でもあります。同じツールがデータベースキー、決定的な ID、手早いテストデータをまとめて支えます。
-
主キーとデータベース行
ランダムな v4 キーはサービス間の衝突を避け、v7 は新しい行をインデックス内で近くに保ち、挿入や範囲スキャンを速くします。
-
ソート可能な時刻順識別子
レコードを作成順に近い形で並べたいとき、v7 と v6 は時刻情報を持つため局所性を保ちやすくなります。正確な順序には専用の時刻列を残します。
-
内容から導く決定的な ID
v5 は名前空間と URL やファイルパスのような安定した名前を毎回同じ UUID に変換でき、冪等なインポートやキャッシュに役立ちます。
-
相関 ID とトレース ID
リクエストやメッセージごとに v4 を割り当てると、ログ、キュー、トレースに一意の手がかりができ、作業単位をサービス間で追えます。
-
テストデータセット
一括生成はデータベース、モック API、スナップショットテストに現実的な識別子を投入でき、生成スクリプトを書く必要がありません。
-
API リソースと冪等キー
クライアントはリクエストに UUID を添えて再試行を一度だけ処理させられ、リソースには安全に公開できる安定した識別子が付きます。
-
ファイル名とオブジェクトストレージのキー
ハイフンなしの UUID はコンパクトで衝突しにくい名前になり、アップロードやエクスポート、共有ストレージのオブジェクトキーに向いています。
-
プレースホルダーとリセット値
NIL UUID は任意の外部キーや既定列の明確な空値になり、MAX は範囲チェックの上限として役立ちます。
関連情報
完全な UUID ではなく、より短いランダム文字列や数値 ID、接頭辞付きのキーが必要な場合は、より汎用的な ID ジェネレーター がそれらの形式を扱います。名前ベース UUID の背後にあるハッシュを導いたり確認したりしたい場合は、 ハッシュ生成ツール が同種の入力から MD5、SHA-1、SHA-256 を計算します。
使い方のヒント
UUID の生成は簡単ですが、バージョンを選び正しく扱うことが、システムを速く、私的に、予測可能に保ちます。
- 汎用の識別子は既定で v4 を使い、キーを作成時刻順にしたいときは v7 を選びます。
- 大量のデータベース主キーでは v4 より v7 を優先します。おおむね時刻順になるため索引挿入が局所的になり、断片化が減ります。
- 新しい名前ベースの識別子は v3 より v5 を優先します。仕様が MD5 より SHA-1 を推奨しているためです。
- UUID は識別子であって機密ではありません。セッショントークンやパスワードリセットなど、推測されてはならない用途には使いません。
- データベースが対応するなら 36 文字の文字列ではなくネイティブの UUID 型やバイナリ列で保存し、容量を節約し比較を速くします。
- 保存では正規の形式を一つに保ちます。通常は小文字でハイフン付きとし、大文字やハイフンなしは必要な境界でのみ適用します。
- v1・v6 はタイムスタンプを含み、v3・v5 は入力から導かれるため、いずれも本質的にランダムでも私的でもない点に注意します。
- 決定的な v3・v5 では、後で同じ識別子を再現できるよう、正確な名前空間と名前を記録しておきます。
制限事項
UUID は識別の問題を解くもので、安全性のためのものではありません。バージョンによって保証が大きく異なるため、何を約束し何を約束しないかを知っておくと役立ちます。
- UUID は機密ではありません。v1・v6 はタイムスタンプを露出し、v3・v5 は入力から再現できるため、アクセス制御には使えません。
- ランダムや時刻ベースのバージョンは圧倒的に一意ですが数学的に保証されてはいないため、一意制約はデータベースに残します。
- ここでの時刻ベースのバージョンは実際のネットワークアドレスではなくランダムなノードを使うため、物理的な機器を特定できません。
- 名前ベースの v3・v5 は決定的なので、同じ名前空間と名前で多数生成しても一つの値が繰り返されるだけです。
- このツールは UUID を生成して整形します。貼り付けた UUID の解析、検証、デコードは行いません。
- ソート可能な v6・v7 はおおむね時刻順ですが、正確な順序が必要なときは専用のタイムスタンプ列の代わりにはなりません。
- プラットフォームによって期待する形式が異なるため、保存前に小文字、大文字、ハイフン、波括弧のどれが必要かを確認してください。
よくある質問
バージョンをまたいで UUID を生成する際のよくある質問です。どのバージョンを選ぶか、名前ベースの値の仕組み、形式、そして UUID が保証することの限界を扱います。
どの UUID バージョンを使うべきですか。
汎用のランダム識別子には v4 を使います。作成時刻順に並ぶデータベースキーには v7、同じ入力から毎回同じ識別子が欲しいときは v5 を選びます。
v4 と v7 の違いは何ですか。
v4 は完全ランダムで順序がありません。v7 は上位ビットに Unix タイムスタンプ、残りにランダムを置くため、おおむね作成時刻順に並び、データベースの索引局所性に優れます。
名前ベースの v3・v5 はどう動きますか。
名前空間 UUID と名前を一緒にハッシュします。v3 は MD5、v5 は SHA-1 です。同じ名前空間と名前は常に同じ UUID になり、値が決定的になります。
v5 ではなく v3 を選ぶのはどんなときですか。
新規では v5 を優先します。仕様が MD5 より SHA-1 を推奨しているためです。v3 は主に、すでに v3 を生成している既存システムとの互換のために使います。
これらの UUID を秘密のトークンに使えますか。
使えません。UUID は識別子であって機密ではありません。v1・v6 はタイムスタンプを露出し、v3・v5 は入力から再現できます。推測されてはならないトークンには専用のランダムな秘密値を使ってください。
v1・v6 は MAC アドレスを露出しますか。
しません。ここでの時刻ベースのバージョンは実際のハードウェアアドレスではなくランダムに生成したノード識別子を使うため、機器の情報は漏れません。
生成した二つの UUID が衝突することはありますか。
ランダムや時刻ベースのバージョンでは衝突は天文学的に起こりにくいものの数学的に不可能ではないため、重要なキーにはデータベースの一意制約を残します。
NIL と MAX の UUID は何に使いますか。
NIL はすべて 0 で、明示的な空やプレースホルダーの値として使えます。MAX はすべて 1 で RFC 9562 が定義し、比較や範囲チェックの上限として役立ちます。
UUID はハイフン付きとなしのどちらで保存すべきですか。
保存では正規の形式を一つに保ちます。通常は小文字でハイフン付きです。ハイフンなしや大文字は、ファイル名やそれを要求するプラットフォームなどの境界でのみ使います。
生成した UUID はどこかに送信されますか。
されません。各値はブラウザ内でローカルに生成されるため、社内システムの識別子やテストデータが端末の外に出ることはありません。
関連ツール
UUID は数ある識別子の一種です。より短い形式やカスタム形式が必要なときは汎用的な ID ジェネレーターと、名前ベース UUID の背後のダイジェストを確認したいときはハッシュツールと組み合わせて使えます。