メインコンテンツへ移動

UUID バージョン4 ジェネレーター

UUIDv4 • 暗号学的に安全なランダム
00000000-0000-0000-0000-000000000000
囲み文字:

UUID一括バッチ生成

最大 5,000件
フォーマットと構造設定

準備完了

No batch active
業界デファクトスタンダードRFC 9562 セクション 5.4 / RFC 4122

UUID バージョン4 技術仕様 (RFC 4122 & RFC 9562)

UUIDv4は世界で最も広く利用されている識別子形式です。合計128ビットのうち、バージョンおよびバリアント情報を除く122ビットが暗号論的ランダムエントロピーで構成されています。

ビットフィールド構成とバイナリ構造

RFC規格に準拠した詳細な128ビットバイト構成。

フィールド名ビット範囲用途と詳細説明
random_hi48ビット (0-47)暗号論的に安全な疑似乱数エントロピー。
ver4ビット (48-51)固定バイナリ値 0100(バージョン4を識別)。
random_mid12ビット (52-63)暗号論的に安全な疑似乱数エントロピー。
var2ビット (64-65)固定バイナリ値 10(RFC標準バリアント)。
random_lo62ビット (66-127)暗号論的に安全な疑似乱数エントロピー。

メリットと利点

  • 完全なプライバシー保護:時刻、MACアドレス、ホスト情報を一切露出しません。
  • ほぼすべてのプログラミング言語標準ライブラリおよびDBで標準サポート。
  • 推測不能な設計により、IDORや列挙攻撃に対して安全。
!

注意点とトレードオフ

  • ランダム書き込みのため、データベースのB-Treeインデックス性能が低下します。
  • 補助カラムなしには時系列順ソートができません。

最適なユースケース

  • APIキー、認証トークン、パスワードリセット用URL、セッション識別子。
  • 推測を防止したいユーザー向け識別子。
  • RedisやMemcachedなどの非インデックスキャッシュ。

非推奨のユースケース

  • 高頻度で書き込まれるデータベースのクラスター化インデックス主キー(UUIDv7を推奨)。

コード実装サンプル

Native Web CryptoJavaScript / TypeScript
// Modern browsers and Node.js 14.17+
const id = crypto.randomUUID();
console.log(id); // e.g. "c9a646d3-9c61-4cc9-bc0c-930438cf38cf"
Python Standard LibraryPython
import uuid

id = uuid.uuid4()
print(id) # e.g. "f47ac10b-58cc-4372-a567-0e02b2c3d479"
Go (google/uuid)Go
package main

import (
  "fmt"
  "github.com/google/uuid"
)

func main() {
  id := uuid.New()
  fmt.Println(id.String())
}

よくある質問

UUIDv4の衝突確率はどの程度ですか?
122ビットのランダム値(約5.3×10^36通り)があるため、毎秒10億個を85年間生成し続けても重複確率は10億分の1未満です。