UUIDジェネレーター|UUID v4 即時生成
ランダムなUUID v4を即時生成します。一括生成にも対応。
UUIDジェネレーター|UUID v4 即時生成とは
UUIDジェネレーターは、RFC 4122準拠のランダムなUUID v4を即時生成する無料オンラインツールです。データベースの主キー、APIのリクエストID、セッショントークン、ファイル識別子など、重複のないユニークIDが必要なあらゆる場面で活用できます。一度に最大100件のUUIDを一括生成することも可能です。
使い方
- 1「生成数」オプションに生成したい件数(1〜100)を入力してください。
- 2「UUIDを生成する」ボタンをクリックしてください。
- 3指定件数のUUID v4が一覧生成されます。コピーしてご利用ください。
メリット・特徴
- RFC 4122準拠のUUID v4を暗号論的に安全な乱数で生成
- 一度に最大100件のUUIDを一括生成可能
- 生成されたUUIDは重複確率が極めて低くグローバルユニークを保証
- データベースのID生成・テストデータ作成に即活用できる
UUIDとは?その仕組みと重要性
UUID(Universally Unique Identifier)は、中央の管理機関なしにコンピューターシステム内の情報を一意に識別するための128ビットの識別子です。RFC 4122で定義され、ハイフンで区切られた32桁の16進数(8-4-4-4-12形式)で表示されます。「ユニバーサルに一意」という特性から、分散システムでのID生成に広く使われています。
UUID v4の生成の仕組み
バージョン4のUUIDは、暗号論的に安全な乱数生成器を使って128ビットのうち122ビットをランダムデータで埋めます。残り6ビットはバージョン(4)とバリアント(RFC 4122)を示します。衝突確率は約1/5.3×10³⁶で、実用上はゼロとみなせます。
UUIDとGUID — 同じもの?
GUIDはMicrosoftがUUID標準を実装した際の名称です。RFC 4122に準拠しており完全に互換性があります。外見上の違いは、Windowsツールが大文字+波括弧で表示すること({550E8400-...})のみ。.NETやSQL ServerがGUIDを要求する場面でも標準のUUID v4がそのまま使えます。
主な用途
UUIDはデータベースの主キー、REST APIのリソース識別子(/users/550e8400-...)、決済APIの冪等性キー、セッション・認証トークン、オブジェクトストレージのファイル名、モバイルアプリのデバイス識別子などに使われます。中央管理なしにグローバルユニークIDが必要なあらゆる場面に適しています。
UUIDのバージョン解説(v1・v3・v4・v5)
UUID標準には5つのバージョンがあり、それぞれ異なる生成方法を持ちます。用途に合ったバージョンを選ぶために違いを理解しましょう。
バージョン1 — タイムスタンプベース
v1は現在のタイムスタンプと生成マシンのMACアドレスを組み合わせます。時間と空間を超えてユニークですが、MACアドレスと生成時刻が埋め込まれるためプライバシー上の懸念があり、現代のWebアプリではほとんど使われません。
バージョン4 — ランダム(最も一般的)
v4は122ビットの暗号論的乱数を使用します。マシン情報やタイムスタンプが含まれないためプライバシーに安全で、最も広くサポートされているバージョンです。多くの開発者が「UUID」と言った場合はv4を指し、本ツールもv4を生成します。
バージョン3・5 — 名前ベース
v3とv5は名前空間UUIDと名前文字列から決定論的にUUIDを生成します。同じ入力から常に同じUUIDが生成されるため、特定URLに対して常に同じIDを割り当てたい場合に便利です。v3はMD5、v5はSHA-1(推奨)を使用します。出力が予測可能なため、セキュリティトークンには不適切です。
開発者のためのUUID活用ベストプラクティス
UUIDを本番環境で効果的に使うには、ストレージ・インデックス・言語別APIの理解が必要です。本番導入前に押さえておきたいポイントをまとめます。
データベース格納 — BINARY(16) vs VARCHAR(36)
UUIDはVARCHAR(36)ではなくMySQLではBINARY(16)、PostgreSQLではuuid型で格納してください。BINARY(16)は16バイトで済みますが、VARCHAR(36)はハイフン込みで36バイト以上必要です。インデックスのサイズと検索パフォーマンスが大きく改善します。
各言語でのUUID生成方法
JavaScript/Node.js: crypto.randomUUID()(組み込み)。Python: uuid.uuid4()(標準ライブラリ)。PHP: Ramsey/uuidパッケージ。Go: google/uuidパッケージ。PostgreSQL: gen_random_uuid()。MySQL 8+: UUID()(v1生成)。いずれも外部ライブラリなし、または軽量パッケージで対応できます。
インデックス効率 — UUID v7やULIDも検討を
ランダムなv4 UUIDはB-treeインデックスの断片化を引き起こし、書き込みが多いテーブルでパフォーマンスが低下します。UUID v7(時刻順、ドラフトRFC)やULID(辞書順ソート可能)はv4と同等の一意性を保ちながら時系列に並ぶため、インデックス効率が大幅に改善します。多くのORMやデータベースが対応を進めています。
よくある質問(FAQ)
- UUID v4とは何ですか?
- UUID(Universally Unique Identifier)のバージョン4は、完全にランダムな128ビットの識別子です。「550e8400-e29b-41d4-a716-446655440000」のような8-4-4-4-12形式で表され、重複する確率が天文学的に低いためグローバルユニークIDとして広く利用されています。
- 生成されたUUIDはどれくらい一意性がありますか?
- UUID v4は122ビットのランダム値から生成されます。1秒に10億個生成しても重複が起こる確率は約50%になるまでに85年かかると言われており、実用上はほぼ一意です。衝突確率は約1/5.3×10³⁶です。
- UUIDとGUIDの違いは何ですか?
- GUID(Globally Unique Identifier)はMicrosoftがUUID標準を実装した際の呼び名です。RFC 4122に基づく仕様は同一で、実質的に互換性があります。Windowsツールでは大文字+波括弧付き({550E8400-...})で表示されることがある点が外見上の違いです。
- どのUUIDバージョンを使うべきですか?
- 一般用途にはv4(ランダム)が最適です。プライバシーが安全でほぼ全ての環境でサポートされています。データベースのインデックス効率を重視する場合はUUID v7(時刻順)やULIDも検討してください。同じ入力から同じUUIDを生成したい場合はv5(SHA-1ベース)を使います。
- JavaScriptでUUIDを生成するには?
- ブラウザ・Node.js 14.17以降では標準APIのcrypto.randomUUID()が使えます。ライブラリ不要で即時使用可能です(例: const id = crypto.randomUUID();)。
- PythonでUUIDを生成するには?
- 標準ライブラリのuuidモジュールを使います。import uuid; my_id = uuid.uuid4() で生成し、str(my_id)で文字列に変換できます。外部パッケージは不要です。
- UUIDをデータベースの主キーに使えますか?
- 使えますが注意点があります。分散システムでは中央管理不要のため有効ですが、v4のランダムUUIDはB-treeインデックスの断片化を引き起こします。MySQLではBINARY(16)で格納するとVARCHAR(36)より効率的です。書き込みが多いテーブルではUUID v7やULIDも検討してください。
- UUID v1やv5には対応していますか?
- 本ツールはUUID v4(ランダム)のみ対応しています。v1(タイムスタンプ+MACアドレス)やv5(SHA-1ハッシュ)は非対応です。
不具合や動作がおかしい点を見つけたら教えてください。
不具合報告はこちら →