В исходной версии спецификации UUID (универсальный уникальный идентификатор) каждый из элементов данных имел семантическое значение:
{ time_low } - { time_mid } - { time_high_and_version } - { clock_seq_and_reserved clock_seq_low } - { node_id }
Эти элементы были разработаны для обеспечения временной (биты времени) и пространственной (биты хоста) уникальности.
История версий
Поскольку математическая вероятность коллизий в пространстве ключей из 2 ^ 1024 случайных битов оказалась астрономически маловероятной, последующие версии спецификации UUID постепенно сокращают время и данные хоста из соображений безопасности и конфиденциальности.
Единственными элементами, которые сохраняют какое-либо значение, являются биты версии и зарезервированные биты.
UUID версии 3 получены из хэша MD5 URI или другого отличительного имени.
Версия 4 генерируется со случайными данными и в настоящее время является наиболее распространенной реализацией, которую вы видите в дикой природе.
Версия 5 получена из хэша SHA1.
Форматы хранения
Так как дефисы указаны для форматирования UUID в ASCII в RFC, даже если отдельные разделы больше не сохраняют свое первоначальное значение, они все еще необходимы, если вам нужна совместимость.
UUID также иногда хранятся в виде строки в кодировке base64 или ascii85, чтобы сэкономить место для передачи по транспортам, которые не являются бинарно-безопасными, и соблюдение RFC не требуется.
Ascii: 3F2504E0-4F89-11D3-9A0C-0305E82C3301
Base64: 7QDBkvCA1+B9K/U0vrQx1A
Ascii85: 5:$Hj:Pf\4RLB9%kU\Lj
Рекомендации:
RFC4122 (см. Стр. 3 для описания ABNF формата UUID)
Википедия GUID UUID