UUIDジェネレーター
RFC 4122準拠のUUID v4をブラウザで即座に生成します — 毎回暗号的にランダムです。データベースシードとAPIテスト用に一度に数十個をバッチ生成できます。
UUIDとは
UUID(Universally Unique Identifier)は中央集権的なレジストリを必要とせずに一意性を実質的に保証できる128ビットの識別子です。バージョン4のUUIDはランダムに生成され、2^122通りの値を取り得るため、衝突確率は天文学的に小さくなります。
UUIDはデータベースの主キー、APIリクエストID、セッショントークン、分散システムの識別子などとして広く利用されています。標準形式は8-4-4-4-12桁の16進数をハイフンで区切ったものです。
UUIDの主な用途
分散システムで調整コストを避けるためオートインクリメントの代わりに使う主キー、ログ相関のためのAPIリクエスト追跡、セッショントークン、再送を安全にするための冪等性キー、ユニークなファイル名、イベントストリームの識別子など。
UUIDバージョンの概要
v1はタイムスタンプ+MACアドレス(高速ですが識別情報が漏れます)。v4は完全ランダムで最も一般的(このツールで生成するのもこれ)。v5はSHA-1を使った名前ベース(同じ入力に対して常に同じUUIDを返します)。v7はタイムスタンプでソート可能(新しく、DBの主キーとして採用が広がっています)。このツールではWeb Crypto APIで暗号学的に強いランダム性を使ってv4を生成します。
暗号学的ハッシュが必要なときは、ハッシュジェネレーターをご利用ください。
主な用途
- データベースの主キー生成:分散データベースでノード間のオートインクリメント整数の競合を引き起こさないUUID v4の主キーを生成できます。
- セッションとトークンの作成:推測可能なIDがセキュリティリスクを生む可能性があるウェブアプリケーション向けに、暗号学的にランダムなセッショントークンを生成できます。
- ファイルとアセットの命名:アップロードされたファイルにUUIDを使って名前を付け、衝突を防ぎ、パストラバーサル攻撃を回避し、重複排除を容易にします。
- マイクロサービスの相関ID:すべてのリクエストにUUIDを相関IDとして付与し、分散マイクロサービスアーキテクチャのログ全体を追跡できます。
- テストデータの生成:開発用データベースのシード、ユニットテスト、APIモックレスポンスのためにリアルなUUIDレコードを生成できます。
- IoTデバイスの登録:プロビジョニング時にIoTデバイスにユニークなUUIDを割り当て、デバイスレベルのテレメトリ追跡と管理を可能にします。
- 決済の冪等性キー:決済APIリクエストの冪等性キーとしてUUIDを生成し、重複した再試行が二重請求にならないようにします。
FAQ
UUIDは本当にユニークですか?
実用上はユニークだと考えて問題ありません。ランダムなv4 UUIDが衝突する確率は2^122分の1で、1秒間に27億個のUUIDを100年間生成し続けてようやく1回衝突する確率が50%になります。現実のアプリケーションでは一意と見なして差し支えありません。
UUIDとGUIDの違いは?
呼び方が違うだけで同じものです。UUIDはIETF/RFCでの標準的な呼称、GUIDはMicrosoft系の呼称で、.NETやWindowsの文脈でよく使われます。バイナリ表現は同一です。
UUIDをパスワードとして使えますか?
使えません。UUIDは一意ではあっても秘密情報ではなく、形式も予測可能です(v4は13桁目が必ず「4」、17桁目が「8」「9」「a」「b」のいずれか)。エントロピーが高く構造が少ない文字列を返す、適切なパスワードジェネレーターを利用してください。
UUIDジェネレーターは生成されたIDを保存しますか?
いいえ。UUIDはWeb Crypto APIを使ってクライアントサイドで生成されます。サーバーには何も送信されません。生成されたIDは別のページに移動するまでブラウザにのみ存在します。
生成されたUUIDは本当にユニークですか?
UUID v4は122ビットの暗号学的ランダム性を生成します。衝突の確率は天文学的に小さく、実用上UUID v4の値はすべての実世界のアプリケーションでユニークと見なされます。
数字で見る
- UUID v4は122のランダムビットを含み — 衝突確率は約5.3 × 10^36分の1で、実用的には事実上ゼロです
- グローバルインターネット全体で1日に約10億個のUUIDが生成されています(データベース使用パターンからの推定)
- RFC 9562(2024年)はUUID標準を更新し、時系列とカスタム用途のv6、v7、v8を追加しました
- UUID v7は最上位ビットにUnixエポックミリ秒を使用し、データベースインデックスで作成時刻順にソート可能なUUIDを実現します