UUIDジェネレーター
データベース、API、またはテストで使用するためのランダムなUUID v4値を生成します。
このUUID生成ツールの使い方
- UUIDの個数を設定
「UUIDの個数」フィールドに1〜10の数値を入力し、生成する識別子の数を指定します。
- 生成
このツールは、ブラウザの暗号学的乱数生成器を使用してランダムなUUID v4値を生成します。
- 結果をコピー
生成されたUUIDをコピーして、データベース、APIペイロード、またはテストフィクスチャで使用します。
このUUID生成ツールの仕組み
このツールは、ブラウザの乱数生成機能を使用してバージョン4のUUIDを生成します。UUID v4識別子は128ビットの値で、特定のビットがバージョン(4)および現代のUUID仕様で使用される標準バリアントを示すように設定されています。Web Cryptoが利用可能な場合、乱数は暗号学的に強力ですが、利用できない場合は、利便性のみを目的としたより強度の低いジェネレーターにフォールバックします。
UUID v4 = xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx (y ∈ {8,9,a,b}) 出力例: 550e8400-e29b-41d4-a716-446655440000
1つのUUIDを生成すると、a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5dのような単一の値が返されます。3番目のグループの「4」はバージョン4であることを示しています。
3つのUUIDを生成すると、それぞれ122ビットのランダムビットを持つ3つの異なる値が返されます。これらはテストレコードやAPIリソースの主キーとして使用してください。
- ✓ 利用可能な場合は、ブラウザの暗号化乱数APIを使用します。
- ✓ Web Cryptoのない環境ではMath.random()にフォールバックします。これは利便性には適していますが、高セキュリティな用途には適していません。
- UUID v4は連続的ではないため、順序付けられた挿入が有利なデータベースにおいて、ソート可能な主キーとしての使用には適していません。
UUIDのバージョンと構造について
UUID(Universally Unique Identifier)は、5つのグループ(8-4-4-4-12)に分けられた32桁の16進数で表される128ビットの値です。バージョン4のUUIDは、122ビットにランダムまたは疑似ランダムなデータを使用し、残りのビットでバージョン(4)とバリアントをエンコードします。衝突の確率は天文学的に低く(約2の122乗分の1)、UUIDは調整なしで事実上ユニークです。他にも、タイムスタンプとMACアドレスを使用するv1、名前ベースのハッシュを使用するv3およびv5、時間順に並ぶv7などのバージョンが存在します。UUID v4は、中央機関や共有状態を必要とせずに生成できるため、分散システムで最も一般的に選択されます。
UUIDの開発者向けユースケース
開発者は、データベースの主キー、分散トレーシングの相関ID、APIペイロードの一意識別子としてUUIDを使用します。自動インクリメントの整数とは異なり、UUIDは中央データベースに問い合わせることなく、クライアント側や任意のサービスで生成できるため、水平スケーリングやオフラインファーストのアーキテクチャを簡素化できます。複数のシステムで作成されたレコードを後で統合するマージシナリオに最適です。また、UUIDはOAuthの状態パラメータ、Webhookの署名、衝突を避けるためのファイル命名にも使用されます。テスト時には、オンデマンドでUUIDを生成することでハードコーディングを回避し、フィクスチャの再現性を高めることができます。主なトレードオフは、サイズ(36文字)と、シーケンシャルIDと比較してソート可能性が低いことです。
よくある質問
これらのUUIDは一意ですか?
実用上は「はい」と言えます。重複が発生する確率は天文学的に低いです(1 / 2^122)。
本番環境で使用できますか?
環境がWeb Cryptoの乱数を提供している場合は「はい」となります。そのAPIがない状態でページが実行され、Math.random()にフォールバックする場合は、出力をセキュリティグレードの乱数ではなく、便宜上の識別子として扱ってください。