UUIDジェネレーター
ランダムなUUID(v1、v4、v7)を生成。アプリケーション用の一意識別子を作成。
コードサンプル
// Native crypto API (UUID v4)const uuid = crypto.randomUUID();// Using uuid library// npm install uuidimport { v4 as uuidv4, v1 as uuidv1 } from 'uuid';const id = uuidv4(); // Randomconst id1 = uuidv1(); // Time-based
関連ツール
UUIDとは?
UUID(Universally Unique Identifier)はデジタル指紋のようなもので、すべてのコンピュータ、すべての時間、宇宙のどこでも一意であることが事実上保証された128ビットの数値です。
こんな形式です: 550e8400-e29b-41d4-a716-446655440000
なぜ必要なの?
- 中央機関なしで一意のIDを作成できる
- ID競合なしでデータベースをマージできる
- オフラインでIDを生成しても、同期時に一意性を保つ
- 分散システム全体でオブジェクトを追跡
UUIDはデータの「ナンバープレート」のようなもの - それぞれが一意で、作成に誰の許可も必要ありません。
UUIDバージョン解説
| バージョン | 基準 | 最適な用途 |
|---|---|---|
| v1 | タイムスタンプ + MACアドレス | 時間順レコード |
| v4 | 乱数 | 最も一般的、汎用 |
| v5 | 名前空間 + 名前 (SHA-1) | 名前から再現可能なID |
| v7 | タイムスタンプ + 乱数 (新!) | DB向け、ソート可能 |
バージョン4(ランダム)- 最も人気
f47ac10b-58cc-4372-a567-0e02b2c3d479
↑
"4" はバージョン4を示す
暗号学的に安全な乱数を使用。衝突の可能性は天文学的に低いです。
UUIDはどれほど一意か?
🎲 一意性の数学
UUID v4には122ビットのランダムビットがあり、2^122の組み合わせが可能: 5,316,911,983,139,663,491,615,228,241,121,400,000 個の一意のUUID
50%の確率で衝突するには:
- 2.71 × 10^18 個のUUIDを生成
- 毎秒10億個生成しても86年かかる!
実用的な目的では、UUID v4は一意として扱えます。調整不要、データベース検索不要 - 生成して使うだけ!
UUIDの構造
8-4-4-4-12 フォーマット
- 32個の16進文字
- ハイフンで区切られた5グループ
- 合計128ビット
バージョン表示 13番目の文字がバージョンを示します:
1= 時間ベース (v1)4= ランダム (v4)7= Unixタイムスタンプ (v7)
UUIDを使うべき場面
✅ 最適な用途:
- データベースの主キー(特に分散システム)
- APIリソース識別子
- セッショントークン
- アップロードファイル名
- マイクロサービス間のトラッキングID
⚠️ 代替を検討すべき場合:
- 人間が読めるIDが必要な場合
- ストレージ容量が重要な場合(UUIDは16バイト)
- 厳密に連番が必要な場合
- URLの見た目が重要な場合
セキュリティ注意: UUIDをシークレットトークンとして使用しないでください!一意ですが、必ずしも予測不可能ではありません(特にv1)。認証トークンには暗号学的に安全なランダム文字列を使用してください。