> uuid | guid | 生成 <
// ユニバーサル一意識別子(UUID/GUID)を即座に生成
暗号学的乱数
UUID v4はcrypto.getRandomValues()を使用して暗号学的に安全な乱数生成を行います。データはブラウザから離れません。
バッチ生成
一度に最大100個のUUIDを生成。データベースシーディング、テスト、開発ワークフローに最適。
複数バージョン
UUID v4(ランダム)とv1(タイムスタンプ)をサポート。用途に合わせてバージョンを選択。
// UUID生成について
UUIDの仕組み:
UUID(Universally Unique Identifier)はRFC 4122で標準化された128ビットの識別子です。UUID v4は122のランダムビットを使用し、2^122の可能な値を提供します。36文字の形式はバージョンとバリアントビットが埋め込まれた8-4-4-4-12パターンに従います。
例:
550e8400-e29b-41d4-a716-446655440000
一般的な使用例:
- >データベースの主キーとレコード識別子
- >中央調整なしの分散システム
- >セッショントークンと相関ID
- >ファイル命名とリソース識別
- >APIリクエストの追跡とロギング
>> よくある質問
Q: UUIDとは何ですか?
A: UUID(Universally Unique Identifier)は、コンピュータシステムで情報を一意に識別するために使用される128ビットの数値です。GUID(Globally Unique Identifier)としても知られています。標準形式はハイフンで区切られた8-4-4-4-12の16進文字です。
Q: UUID v4とv1の違いは何ですか?
A: UUID v4は乱数を使用して生成され、最も一般的に使用されるバージョンです。UUID v1は現在のタイムスタンプとノード識別子に基づいています。V4はシンプルさとプライバシーの点からほとんどのアプリケーションで推奨されます。
Q: UUIDの衝突確率はどのくらいですか?
A: UUID v4には122のランダムビットがあり、2^122(約5.3 x 10^36)の可能な値があります。重複を生成する確率は天文学的に低いです。
Q: UUIDとGUIDの違いは何ですか?
A: UUIDとGUIDは本質的に同じものです。UUIDはほとんどの標準で使用される用語で、GUIDはMicrosoft技術で一般的に使用される用語です。
Q: RFC 4122とは何ですか?
A: RFC 4122はUUID形式、生成アルゴリズム、名前空間規則を定義するインターネット標準です。5つのUUIDバージョン(v1からv5)を規定しています。
// 特別なUUID値
これらの固定値はRFC 9562で定義されています。
| UUID | 意味 |
|---|---|
| 00000000-0000-0000-0000-000000000000 | Nil UUID(全ビット0) |
| ffffffff-ffff-ffff-ffff-ffffffffffff | Max UUID(全ビット1) |
| 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | DNS名前空間(v3/v5用) |
// コードでUUIDを生成
JavaScript crypto.randomUUID() Python str(uuid.uuid4()) PHP Ramsey\Uuid\Uuid::uuid4()->toString() Go uuid.NewString() Java UUID.randomUUID() C# / .NET Guid.NewGuid() PostgreSQL gen_random_uuid() MySQL UUID() Bash uuidgen
>> その他の質問
Q: 主キーにはUUID v4とv7のどちらを使うべきですか?
A: v7は先頭にタイムスタンプがあるため、作成時刻順におおよそソートでき、B-treeインデックスへ効率よく挿入されます。v4は完全にランダムで、大きなテーブルでは挿入位置が散らばります。順序やインデックス性能が重要ならv7、IDから時刻を推測されたくないならv4を選びます。
Q: UUIDをデータベースに保存する最善の方法は?
A: ネイティブ型があればそれを使います(PostgreSQLの uuid など)。ない場合は CHAR(36) より BINARY(16) が望ましく、容量が半分以下になり、比較やインデックスも高速になります。
Q: UUID v4が重複する確率はどのくらいですか?
A: UUID v4には122ビットのランダム値があります。毎秒10億個を100年間生成しても、乱数生成器が暗号学的に良質であれば衝突確率は10億分の1よりはるかに小さくなります。