UUID生成ツールとは?
UUID(Universally Unique Identifier)は、システム内のデータやオブジェクトを識別するために使われる128ビットの識別子です。 一般的な文字列表現は、16進数を8-4-4-4-12の5グループに分けた36文字形式です。 Microsoft系の文脈ではGUIDという名称を見かけることもあります。
このUUID生成ツールでは、現在広く使われているUUID v4に加えて、 時刻情報を持つUUID v1、新しい時間順UUIDであるUUID v7を生成できます。 テストデータ、データベースの主キー、APIレスポンスの識別子、分散システムのIDなどの作成に利用できます。
UUID v1・v4・v7の違い
- UUID v4:乱数または疑似乱数を中心に生成する方式です。生成時刻をUUIDから読み取る必要がなく、一般的なランダムUUIDとして広く利用されています。
- UUID v7:先頭にUnix時刻のミリ秒タイムスタンプを持ち、後半にランダム性を持たせる方式です。文字列を同じ形式で比較したときに、おおむね生成時刻順に並べやすいのが特徴です。
- UUID v1:時刻を中心に構成される従来のUUIDです。既存システムとの互換性が必要な場合に利用されますが、新規設計ではv4やv7も比較して選ぶとよいでしょう。
UUID v4はどんなときに向いている?
UUID v4は、IDに時系列性を持たせる必要がなく、シンプルにランダムな識別子が必要な場面に向いています。 開発中のダミーデータ、REST APIのリソースID、クライアント側で先にIDを発行したい場合などに使いやすい方式です。
UUID v7はなぜ注目されている?
UUID v7は、UUIDの先頭部分にUnix時刻を入れるため、ランダムなUUID v4よりも時系列で並べやすい設計です。 そのため、作成順を追いたいイベントIDや、時系列データを扱うシステム、データベースのキー候補として検討されることがあります。 ただし、UUIDから生成時刻を推測できるため、時刻情報を外部に見せたくない用途ではv4の方が適する場合があります。
UUIDの形式
標準的なUUIDは次のような形式です。
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
M付近にはUUIDのバージョンを表すビットが含まれ、N付近にはバリアントを表すビットが含まれます。 単に32桁のランダムな16進数を作るだけでは、必ずしもRFC準拠のUUIDにはなりません。UUIDは本当に重複しない?
UUIDは重複しにくいよう設計されていますが、「数学的に絶対に重複しない」ことを保証するものではありません。 実際のアプリケーションでは、適切なUUID実装を利用しつつ、データベース側でもUNIQUE制約などを組み合わせると安全です。
UUIDをパスワードやAPIキーに使ってもいい?
おすすめしません。UUIDは識別子のための仕様であり、秘密情報を守るための認証トークン仕様ではありません。 パスワード、セッションシークレット、APIキー、パスワードリセット用トークンなどには、用途に合った安全なランダムトークン生成方式を使ってください。
よくある質問
- Q. UUIDとGUIDは違いますか?
A. 実務ではほぼ同じ128ビット識別子を指す言葉として扱われることが多く、特にMicrosoft環境ではGUIDという名称がよく使われます。 - Q. UUID v4とv7のどちらを選べばいいですか?
A. 時系列性が不要ならv4がシンプルです。生成順に並べたい、時刻順のIDが欲しい場合はv7を検討できます。既存システムの対応状況も確認してください。 - Q. ハイフンなしUUIDも使えますか?
A. システム独自の文字列IDとして扱うことはできますが、RFCの標準テキスト表現との互換性を重視するならハイフン付きの標準形式を使う方が無難です。 - Q. UUID v7から生成時刻を確認できますか?
A. はい。v7にはUnix時刻のミリ秒タイムスタンプが含まれます。このページのUUID検証機能では、v7の時刻を日本時間で表示します。
仕様の説明はRFC 9562を基準にしています。実際のシステム設計では、利用中の言語・データベース・フレームワークが対象UUIDバージョンをサポートしているかも確認してください。


