ToolActToolAct

UUID生成器

RFC 4122標準準拠のユニーク識別子を生成

生成結果計 0 個

「UUID生成」をクリックして開始

UUIDとは?

UUID は Universally Unique Identifier の略で、分散システム内のレコード、オブジェクト、セッション、ファイル、端末、メッセージなどを識別するための 128 ビットの ID です。一般的な文字列表記は、16 進数を 8-4-4-4-12 のグループに分けた形式です。複数のサーバー、クライアント、サービスが中央データベースに連番を問い合わせずに ID を作れるため、分散処理でよく使われます。UUID のバージョンによって、乱数、時刻情報、名前空間ベースのハッシュなど生成方法が異なり、プライバシー、並び替えやすさ、予測可能性、衝突リスクも変わります。UUID は識別子であり、権限や秘密情報の代わりにはなりません。

使い方

生成手順

  1. UUIDバージョン(v1、v4、Nil)を選択してください
  2. 生成数を設定してください(1〜100)
  3. 出力の大文字/小文字を選択してください
  4. 形式を選択してください(ハイフンあり/なし/括弧付き)
  5. 生成ボタンをクリックして識別子を作成してください

キーボードショートカット

  • Ctrl + GUUIDを生成
  • Ctrl + Shift + Cすべてコピー

識別子の注意点

  • UUID v4はランダムなクライアントサイド識別子として通常最適な選択肢です。時間やデバイス情報は含まれません。
  • UUIDを秘密情報として使わないでください。レコードを識別するためのもので、認証トークンやアクセスキーの代わりにはなりません。

利用シーン

開発用データのUUIDを一括生成1、5、10、20、50、100個のUUIDを一度に生成し、個別の値をコピーしたり、すべてコピーしたり、テキストファイルとしてダウンロードしたりできます。UUID v4はcrypto.getRandomValuesが利用可能な場合にそれを使用し、乱数シードはブラウザ内でローカルに生成されます。リモートの乱数サービスや共有エントロピーソースは使用しないため、隔離ネットワーク上でもテストフィクスチャの再現性が保たれます。
バージョンと出力形式を選択ランダムなv4 UUID、シミュレートされたタイムスタンプ形式のv1 UUID、Nil UUIDを生成し、ハイフン付き・ハイフンなし・括弧付きの形式、大文字・小文字の出力を選択できます。すべての識別子はローカルの乱数シードまたはタイムスタンプと組み込みのプレースホルダーノードから生成されるため、生成されたIDは環境固有のトークンを公開せずにフィクスチャとして共有できます。
キーボードショートカットで効率的に操作ページは読み込み時に初期UUIDを生成し、Ctrl+Gで再生成、Ctrl+Shift+Cですべてコピーが可能です。フィクスチャ、データベースシード、リクエストトレーシング、APIサンプルのID作成に便利です。各生成ごとに新しいローカル乱数シードが使用されるため、数時間オフラインだったマシンでも実行間の衝突は発生しません。
v1形式のソート可能な識別子を生成データベースインデックスで時系列順にソートしたいIDにはUUID v1を選択します。タイムスタンプとMACアドレス情報が漏洩するため、作成時刻が機密となる場面での公開は避けてください。ページはタイムフィールドにブラウザ内タイムスタンプを使用するため、テストでは正しいソート順が得られますが、マシン間での正確な壁時計の相関には依存しないでください。
既存のUUIDを挿入前に検証候補値を入力欄に貼り付けると、ページが解析済みのバージョンとバリアントビットを再表示するため、データベースに書き込む前に不正なハイフン、誤った長さ、正規でない大文字小文字を検出できます。検証は入力からの文字列読み取りのみで行われ、ログ記録や外部送信は行われないため、ユーザー提供の識別子を外部サービスに漏洩させずに健全性チェックを行えます。

仕組み

UUIDは標準形式8-4-4-4-12の128ビット識別子で、合計36文字(4つのハイフンを含む)です。128ビットは以下に分割されます:time-low(32ビット)、time-mid(16ビット)、version-and-time-high(16ビット、上位4ビットがバージョン)、variant-and-clock-seq(16ビット、上位2〜3ビットがバリアント)、node(48ビット)。RFC 4122はv1からv5までの5つのバージョンを定義しています。 v1は60ビットのタイムスタンプ(100ナノ秒分解能、1582年10月15日からのカウント)に48ビットのMACアドレスと14ビットのクロックシーケンスを加えて構成されます。理論的には生成時刻でソート可能ですが、マシンの身元と生成時刻が漏洩します。v4は最も広く使用されているバージョンで、122ビットが暗号学的に安全な乱数源で埋められ、バージョン(4)とバリアント(10)のビットが固定されます。 衝突確率はUUID設計の中心的な課題です。v4は122ビットの乱数空間を持ち、誕生日のパラドックスにより、1秒あたり10億個のUUIDを85年間生成し続けた場合に50%の衝突確率に達しますが、実用上は十分すぎる値です。新しいv7はタイムスタンプを先頭に、乱数ビットを末尾に配置し、一意性と時系列順序のバランスを取り、データベース主キーにより適しています。

  • UUID v4:122ビットの乱数に固定バージョンビット4とバリアントビット10を付加。ほぼすべてのシナリオで動作し、プライバシー情報を漏洩しません。
  • UUID v1:60ビットのタイムスタンプ + 48ビットのMAC + 14ビットのクロックシーケンス。時系列でソート可能ですが、マシンフィンガープリントが露出するため注意が必要です。
  • UUID v7:タイムスタンプが先頭、乱数ビットが末尾。2024年のドラフト標準で、データベース主キー向けに特に設計されています。
  • 衝突確率:v4の乱数空間は2^122で、1秒あたり10億個のUUIDを85年間生成し続けることで50%の衝突確率に達します。
  • Nil UUID:すべてゼロの00000000-0000-0000-0000-000000000000。プレースホルダーやデフォルト値として一般的に使用されます。
  • フォーマットのバリエーション:標準の8-4-4-4-12のほかに、ハイフンなしの32文字形式、{括弧}付き形式、URN形式(urn:uuid:...)があります。

使用例

UUID v4(ランダム)標準形式

550e8400-e29b-41d4-a716-446655440000

バージョン桁(13番目の16進文字): 4 -> v4、ランダム
バリアントビット(17番目の16進文字): 8/9/a/b -> RFC 4122 バリアント
用途: データベースの主キー、リクエスト ID、アセット ID — 順序が重要でない場合の既定の選択肢
RFC: RFC 4122 セクション 4.4 が v4 の生成を定義

UUID v1(タイムスタンプ + MAC)形式

c232ab00-9414-11ec-b909-0242ac120002

バージョン桁: 1 -> v1、時刻ベース
注意: 生成タイムスタンプを time_low にエンコード。末尾12桁の16進文字はノード ID(多くの場合 MAC)
用途: ソート可能な ID やホストごとに決定的なソースが必要な場合に使用。ただし MAC によるホスト身元の漏洩に注意
RFC: RFC 4122 セクション 4.1 が v1 のレイアウトを定義

v4 ID を5つ一括生成

a1b2c3d4-e5f6-4789-a012-3456789abcde
f7e8d9c0-b1a2-43f4-95e6-7d8c9b0a1e2f
3c4d5e6f-7a8b-49c0-9d1e-2f3a4b5c6d7e
8e9f0a1b-2c3d-44e5-bf6a-7b8c9d0e1f2a
5f6a7b8c-9d0e-45f1-a2b3-c4d5e6f7a8b9

注意: 各 ID は crypto.getRandomValues から独立に生成される。RFC 4122 付録 B によれば、2^122 個の ID での衝突確率は無視できる

よくある質問

UUIDとは何ですか?

Universally Unique Identifierは128ビット値(RFC 4122/9562)で、通常は8-4-4-4-12のパターンで32桁の16進数として書かれます(例:550e8400-e29b-41d4-a716-446655440000)。バージョンによって時刻、ランダムデータ、またはハッシュをエンコードします。中央コーディネーターなしでシステム間で一意であることを目的としています。

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

v1はホストのMACアドレスと100ナノ秒タイムスタンプを混合します(順序付けは良好だが、ホスト情報が漏洩)。v4は完全にランダムです(122ビットのエントロピー、順序なし)。v7(RFC 9562)は48ビットのUnixミリ秒タイムスタンプを上位ビットに、ランダムビットを下位ビットに配置します。v1のようにソート可能ですが、MACの漏洩はありません。v7はデータベースキーの最新の標準です。

UUIDは本当に一意ですか?

統計的にはそうです。100年間毎秒10億個のv4 UUIDを生成しても、衝突確率はおおよそ50%(誕生日パラドックスの境界)にしかなりません。実用的なすべてのシステムでは、UUIDを調整なしで一意として扱えます。

UUIDはランダムで推測不可能ですか?

v4 UUIDはランダムで、事実上推測不可能です(122ビットのエントロピー)。v1 UUIDはランダムではなく、ホストのMACとタイムスタンプを露出するため、セキュリティトークンとして使用しないでください。v7のタイムスタンププレフィックスも予測可能で、末尾のランダムビットのみが推測不可能です。

UUIDをデータベースの主キーとして使うべきですか?

機能はしますが、トレードオフがあります。ランダムなv4 UUIDは、主キーでクラスタリングするデータベース(MySQL InnoDB)でB-treeの断片化を引き起こし、大規模での挿入パフォーマンスを損ないます。ソート可能なv7 UUIDはこれを回避します。自動採番整数は依然としてサイズが小さく高速です。分散生成が重要な場合にUUIDを使ってください。

UUID生成はブラウザ内で行われますか?

はい。本ページではWeb Crypto APIの一部であるcrypto.randomUUID(古いブラウザではcrypto.getRandomValues)を使用します。サーバーには何も送信されず、ページを更新すると新たなエントロピーストリームが得られます。

なぜ一部のUUIDは先頭がほぼ同じに見えるのですか?

v1とv7のUUIDは先頭の文字に時刻をエンコードするため、同じミリ秒内に生成されたUUIDはプレフィックスを共有し、末尾のバイトのみが異なります。この性質によって自然にソート可能になっています。v4 UUIDはランダムで、この性質はありません。

関連ツール

Token カウンター

オンラインToken計算ツール、AIモデルでのToken数を推定。GPT、Claudeなど複数モデル対応、プロンプトコスト管理に役立ちます。

パスワード生成器

オンライン強力パスワード生成ツール。長さ、文字種類をカスタマイズ。高安全性のランダムパスワードを生成し、ブルートフォース攻撃を防止し、アカウントを保護。

ランダム選択ツール

無料オンラインランダム抽選ツール、抽選に対応。暗号化レベルの乱数アルゴリズムで公平性を確保、抽選アニメーションや重複オプション対応。

ハッシュ生成器

オンラインハッシュ生成ツール。MD5、SHA-1、SHA-256、SHA-512など複数アルゴリズム対応。テキストのハッシュ値を素早く生成し、データ検証やパスワード保存に使用。

Base64 エンコードデコードツール

オンラインBase64エンコード・デコードツール。UTF-8テキスト、日本語、画像変換をサポート。リアルタイムエンコード・デコード、ソフトウェアインストール不要、データはローカル処理でプライバシー保護。

JSON Schema ジェネレーター

無料オンラインJSON Schemaジェネレーター、JSONデータから標準準拠のスキーマ定義を自動生成。ネストオブジェクト、配列型推論、必須フィールド設定に対応、データ検証ルールを素早く作成。