UUID / GUID ジェネレーター

v1、v4、または v5 形式の UUID を一括生成します。フォーマット指定やプレフィックス/サフィックスも設定できます。

バージョンリファレンス


v4 — ランダム

バージョン4のUUIDは完全にランダム(または擬似ランダム)なバイトから生成されます。128ビットのうち122ビットがランダムであり、残りの6ビットはバージョン(4)とバリアントをエンコードします。構造化された情報を持たないため、v4 UUIDは最もシンプルな選択肢です。共有状態、ネットワーククロック、名前空間の調整も必要ありません。重複が生成される確率は天文学的に低いです。データベースの主キー、セッショントークン、時刻順序が不要な一意性が求められるコンテキストではv4をデフォルトとして使用してください。

Wikipedia — UUID Version 4 (random)

v1 — 時刻ベース

バージョン1のUUIDには、60ビットのタイムスタンプ(1582年10月15日のグレゴリオ暦改革日以降の100ナノ秒間隔)、14ビットのクロックシーケンス、および48ビットのノード識別子(歴史的には生成マシンのMACアドレス)が埋め込まれています。タイムスタンプが最も重要なコンポーネントであるため、v1 UUIDは辞書順で比較すると時系列に並び替えられます。これはクラスター化されたデータベースインデックスに有用な特性です。欠点はプライバシーです:v1 UUIDはマシンのMACアドレスと正確な作成時刻を漏洩させます。

Wikipedia — UUID Version 1 (time-based)

v5 — 名前空間 + 名前 (SHA-1)

バージョン5のUUIDは決定論的です:同じ名前空間UUIDと同じ名前文字列が与えられると、出力は常に同一です。アルゴリズムは名前空間バイトとUTF-8エンコードされた名前を連結し、SHA-1でハッシュ化して160ビットのダイジェストを128ビットに畳み込みます。これにより、v5は安定した再現可能な識別子の生成に最適です。v3はMD5を使用しますが、v5はSHA-1の方が衝突が少ないため優先されます。

Wikipedia — UUID Version 5 (name-based)