UUID/GUID生成
ユニークな識別子(UUID/GUID)を生成します
UUID(Universally Unique Identifier)は、世界中で一意性が保証されるIDです。
データベースのプライマリキー、セッションID、ファイル名などに広く使われています。
💡 UUIDの雑学・Tips
🎲 UUIDの重複確率は天文学的に低い
UUID v4は122ビットのランダム値を使用するため、理論上 2^122(約5.3×10^36)通りの組み合わせがあります。毎秒10億個のUUIDを生成し続けても、重複が発生する確率は事実上ゼロです。この特性により、分散システムでも中央管理なしに一意なIDを生成できます。
📅 UUID v7はタイムスタンプでソート可能
UUID v7は2024年に標準化された新しいバージョンで、先頭にUNIXタイムスタンプを含むため時系列順にソートできます。データベースのインデックスパフォーマンスが向上し、ランダムなv4より効率的です。TwitterのSnowflake IDと似た設計思想を持っています。
🔢 ハイフンは読みやすさのため
UUIDの標準形式は 8-4-4-4-12 文字のハイフン区切りですが、これは可読性のための慣習で必須ではありません。ハイフンを除いた32文字の16進数でも有効です。データベースに保存する際は、ハイフンなしのバイナリ形式で格納するとストレージを節約できます。
🔐 UUIDはセキュリティには不十分
UUIDは一意性を保証しますが、推測不可能性は保証しません。特にv1(MACアドレスベース)やv7(タイムスタンプベース)はパターンが予測可能です。セッショントークンやAPIキーなど、セキュリティが重要な用途では、暗号学的に安全な乱数生成器(CSPRNG)を使うべきです。
🌐 GUIDとUUIDは同じもの
GUID(Globally Unique Identifier)はMicrosoftが使う呼称で、UUIDと技術的には同一です。Windowsのレジストリや.NET FrameworkではGUID、それ以外の多くのシステムではUUIDと呼ばれます。RFC 4122で標準化された128ビットの識別子という点では全く同じものです。