UUID ジェネレーター
概要
UUID ジェネレーターは、時間ベース、ランダム、ハッシュ、特殊値など、様々なバージョンの汎用一意識別子(UUID)の作成に対応しています。同時に UUID チェッカー機能を提供し、既存 UUID のバージョン、バリアント、有効性を検証・分析できます。データベースプライマリキー生成、分散システム識別、セッション管理などのシーンに適しています。
コア機能
UUID 生成
- 複数バージョン対応: V1、V3、V4、V5、V6、V7 バージョンの UUID 生成
- 特殊値: NIL(全ゼロ)および MAX(全イチ)UUID の作成
- バッチ生成: 一度に最大100個の UUID を生成
- 名前空間対応: V3 と V5 はカスタム名前空間と名前に対応
UUID チェッカー
- 有効性検証: 文字列が UUID 形式に準拠しているか確認
- バージョン検出: UUID バージョン(1-7)を自動識別
- バリアント分析: UUID バリアント(RFC 4122、NCS、Microsoft、Future)を確定
- 特殊検出: NIL および MAX UUID を識別
- 規範化: 小文字標準形式の UUID を表示
UUID バージョン詳細
NIL UUID
形式: 00000000-0000-0000-0000-000000000000
すべてのビットがゼロに設定された特殊 UUID、以下の用途に使用:
- データベースの NULL 値プレースホルダー
- 未初期化状態のデフォルト値
- 欠落または無効 ID の識別
MAX UUID
形式: ffffffff-ffff-ffff-ffff-ffffffffffff
すべてのビットがイチに設定された特殊 UUID、以下の用途に使用:
- 境界テストの最大値センチネル
- 範囲クエリの上限
- 特殊マーカー値
V1: 時間ベース
現在のタイムスタンプと MAC アドレスを使用して生成、特徴:
- 時系列性: 生成時刻順に自然にソート
- 一意性: タイムスタンプとハードウェアアドレスを組み合わせ、極めて低い衝突確率
- プライバシー問題: MAC アドレスと生成時刻を露出する可能性がある
- 適用シーン: ログ記録、イベント追跡(プライバシーに注意)
V3: MD5 ハッシュ
名前空間 UUID と名前に MD5 ハッシュを実行して生成、特徴:
- 確定性: 同じ入力は常に同じ UUID を生成
- 名前空間分離: 異なる名前空間下の同名は異なる UUID を生成
- 互換性: MD5 アルゴリズムを使用、計算速度が速い
- 適用シーン: 名前から一貫性のある識別子を生成する必要がある(レガシーシステム)
V4: ランダム
乱数または疑似乱数を使用して生成、特徴:
- 簡潔性: 実装が最も簡単、追加パラメータ不要
- プライバシー性: 時間またはハードウェア情報を含まない
- 高衝突率: 理論上衝突の可能性があるが、確率は極めて低い(2^122分の1)
- 適用シーン: 汎用一意識別、最もよく使われるバージョン
V5: SHA-1 ハッシュ
V3 と類似、SHA-1 ハッシュを使用、特徴:
- 確定性: 同じ入力は常に同じ UUID を生成
- より強いセキュリティ: SHA-1 は MD5 より耐衝突性が優れている
- 推奨代替: 新規アプリケーションは V3 ではなく V5 を優先すべき
- 適用シーン: 名前から一貫性のある識別子を生成
V6: 再配置時間ベース
V1 の改善版、タイムスタンプフィールドを再配置、特徴:
- 時系列性: 時間ソート特性を保持
- データベースフレンドリー: B-tree インデックスとソートにより適している
- 互換性: V1 と同じ時間精度を使用
- 適用シーン: データベースプライマリキー、時系列性が必要な分散 ID
V7: Unix タイムスタンプ
ミリ秒レベル Unix タイムスタンプとランダムビットを使用、特徴:
- 時系列性: 生成時刻順に自然にソート
- プライバシー性: MAC アドレスを含まない
- データベースフレンドリー: プライマリキーに適し、インデックス効率が高い
- 推奨使用: 時系列性とプライバシー性を兼ね備えた現代的選択
使用方法
UUID 生成
- バージョン選択: バージョンセレクターから UUID バージョンを選択(NIL、MAX、V1-V7)
- オプション設定(V3/V5 適用):
- 事前定義の名前空間を選択(DNS、URL、OID、X500)
- またはカスタム名前空間 UUID を入力
- ハッシュする名前を入力
- 数量設定: 生成する UUID 数を選択(1-100)
- 結果確認: 生成された UUID が右側パネルに表示されます
- コピー使用: 単一 UUID をクリックしてコピー、または「すべてコピー」ボタンを使用
UUID チェック
- UUID 貼り付け: チェッカー入力ボックスに UUID 文字列を入力
- 分析確認:
- 有効性ステータス(有効/無効)
- 規範化形式(小文字標準形式)
- バージョン番号(1-7 または不明)
- バリアントタイプ(RFC 4122、NCS、Microsoft、Future)
- 特殊タイプ検出(NIL/MAX)
- 結果検証: UUID が期待する形式とバージョンに準拠しているか確認
名前空間 UUID
V3 と V5 用の事前定義名前空間:
| 名前空間 | UUID | 使用シーン |
|---|---|---|
| DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | ドメイン識別(例: example.com) |
| URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 | URL アドレス識別 |
| OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 | ISO OID 識別 |
| X500 | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 | X.500 DN 識別 |
応用シーン
データベースプライマリキー
- V4 を使用してランダムプライマリキーを生成、シーケンス番号によるデータ量漏洩を回避
- V7 を使用して時系列プライマリキーを生成、挿入性能と範囲クエリ効率を向上
- V5 を使用してビジネス識別から確定的プライマリキーを生成
分散システム
- 各ノードが独立して UUID を生成、中央集権的調整不要
- V1/V6/V7 は時間ソートに対応、分割とアーカイブに便利
- V4 は異なるシステム間の ID 衝突がないことを保証
セッション管理
- V4 を使用して一意のセッショントークンを生成
- V7 を使用してタイムスタンプと組み合わせて自動有効期限メカニズムを実現
- V5 を使用してユーザー ID から確定的セッション識別を生成
ファイル命名
- アップロードファイルに一意のファイル名を生成、上書きを回避
- V7 を使用してファイル名が時刻順にソートされることを保証
- V4 を使用してランダム性とプライバシー性を保証
API リソース識別
- RESTful API のリソース ID
- GraphQL のグローバル一意 ID
- マイクロサービス間のリクエスト追跡 ID
メッセージキュー
- メッセージ一意識別子
- イベントソーシングのイベント ID
- 分散トランザクションのトランザクション ID
生成例
例1: ランダム UUID 生成(V4)
設定:
- バージョン: V4
- 数量: 3
出力:
f47ac10b-58cc-4372-a567-0e02b2c3d479
7c9e6679-7425-40de-944b-e07fc1f90ae7
550e8400-e29b-41d4-a716-446655440000
例2: 確定的 UUID 生成(V5)
設定:
- バージョン: V5
- 名前空間: DNS (
6ba7b810-9dad-11d1-80b4-00c04fd430c8) - 名前:
example.com
出力:
cfbff0d1-9375-5685-968c-48ce8b15ae17
同じ入力は常に同じ UUID を生成し、冪等性が必要なシーンに適しています。
例3: 時系列 UUID 生成(V7)
設定:
- バージョン: V7
- 数量: 3
出力:
018c5a2e-7c00-7000-8000-000000000001
018c5a2e-7c00-7001-8000-000000000002
018c5a2e-7c00-7002-8000-000000000003
プレフィックスが同じで、時刻順にソート可能です。
例4: UUID チェッカー
入力:
550e8400-e29b-41d4-a716-446655440000
分析結果:
- 有効: はい
- 規範化:
550e8400-e29b-41d4-a716-446655440000 - バージョン: 4
- バリアント: RFC 4122(標準)
- 特殊タイプ: なし
例5: URL ベースの UUID(V5)
設定:
- バージョン: V5
- 名前空間: URL (
6ba7b811-9dad-11d1-80b4-00c04fd430c8) - 名前:
https://example.com/users/123
出力:
2ed6657d-e927-568b-95e1-2665a8aea6a2
URL から一貫性のある識別子を生成するのに適しています。
ベストプラクティス
バージョン選択の提案
- 汎用シーン: V4(ランダム)または V7(時系列)を使用
- データベースプライマリキー: V7 を優先、次に V4
- 確定的生成: V5(推奨)または V3(互換)を使用
- ハードウェア情報隠蔽: V1 の使用を避け、V4 または V7 を選択
- 時系列ソート: V1、V6、または V7 を使用
ストレージ最適化
- データベースでは16バイトバイナリ形式で保存、36バイト文字列ではない
- インデックス作成時に V4 のランダム性がインデックスフラグメントを引き起こす可能性に注意
- V7 と V6 は B-tree インデックスに適し、挿入性能が優れています
セキュリティ注意
- V1 は MAC アドレスと生成時刻を漏洩する可能性があるため、機密シーンでの使用を避ける
- V3 は MD5 を使用、暗号化シーンには適していません
- UUID をセキュリティトークンまたはパスワードとして使用しないでください
- UUID 生成後はセキュアなチャネルを通じて送信する必要があります
注記
- UUID は RFC 4122 標準に準拠
- V1-V7 のランダム性は暗号化セキュアな乱数生成器に基づく
- V3 と V5 のハッシュ計算はクライアント側で完了、入力データを漏洩しません
- チェッカーは標準 UUID 検証と解析アルゴリズムを使用
同類ツール比較
他のオンラインUUIDツールと比較して、本ツールはより多くのバージョン(最新の V6 と V7 を含む)と名前空間オプションに対応しています。ローカルツールと比較しても、バッチ生成とチェッカー機能をまとめて使え、パラメータを覚える負担を減らせます。コードを書かずに UUID を迅速に検証・テストできます。
よくある質問
UUID は本当に一意ですか
理論上、UUID は衝突の可能性がありますが、確率は極めて低いです:
- V4: 衝突確率は約 2^-122、10億個の UUID を生成しても衝突確率はわずか0.0000000001%
- V1/V6/V7: タイムスタンプとランダムビットを組み合わせ、ほぼ衝突不可能
- V3/V5: 同じ入力は同じ UUID を生成、入力の一意性を保証する必要があります
名前空間の選択方法
V3 と V5 の場合:
- DNS 名前空間を使用してドメインを処理
- URL 名前空間を使用して完全な URL を処理
- OID 名前空間を使用して ISO オブジェクト識別子を処理
- カスタム名前空間を使用して異なるアプリケーションまたはテナントを分離
V3 ではなく V5 を推奨する理由
SHA-1 は MD5 よりも優れた耐衝突性を持ちます。SHA-1 は暗号化には推奨されませんが、UUID 生成には依然として十分安全です。新規アプリケーションは V5 を優先すべきで、V3 のみをサポートするレガシーシステムとの互換性が必要な場合を除きます。



