UUID(Universally Unique Identifier)およびGUID(Globally Unique Identifier)は、ソフトウェアシステムで使用される128ビットの一意な識別子です。RFC 4122で標準化され、その後RFC 9562で更新されました。中央の調整機関なしに独立して生成でき、重複の確率が極めて低いという特性から、データベースの主キーや分散システムの識別子として広く利用されています。
UUIDは標準的に36文字の16進数文字列として表現されます。形式は「XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX」で、ハイフンで区切られた5つのフィールドから構成されています。先頭の部分にはバージョン情報が含まれ、生成アルゴリズムを示しています。
現在のRFC 9562では8つのバージョンが定義されており、それぞれ異なる生成アルゴリズムと用途を持ちます。UUIDv4(ランダム生成)は最も広く使用されていますが、データベースのインデックス局所性を重視する場合はUUIDv7(Unixエポック時間ベース)が推奨されています。UUIDv7は時系列順にソート可能であり、かつMACアドレスを含まないためプライバシー上の懸念もありません。
名前から一意の識別子を生成したい場合は、UUIDv3(MD5ベース)またはUUIDv5(SHA-1ベース)が使用されます。同じ名前空間と名前からは常に同じUUIDが生成されるため、決定論的な識別子が必要な場面で有用です。ただし、セキュリティ上の理由からUUIDv5が推奨されています。