Какова гарантированная уникальность идентификаторов, генерируемых модулем APR :: UUID? - PullRequest
3 голосов
/ 12 декабря 2011

Документация Data :: UUID гласит, что

UUID имеет длину 128 бит и гарантированно будет отличаться от всех другие UUID / GUID, сгенерированные до 3400 CE.

Документация для APR :: UUID описывает сгенерированные идентификаторы как random .

Означает ли это, что GUID, созданные APR :: UUID, не гарантированно являются уникальными?

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011

Статьи Wikipedia по UUID s и GUID s поучительны здесь.

UUID являются случайными, но взяты из такого большого распределения, чтовероятность столкновений минимальна, тогда как в этом контексте минимальный означает, что вы, вероятно, будете поражены тысячами астероидов, прежде чем сгенерировать два идентичных UUID.система, такая как MAC-адрес вашего сетевого оборудования и текущее время, так что коллизии между GUID, созданным в другой системе, еще менее вероятны.

0 голосов
/ 26 июня 2014

Я понимаю, что это старый вопрос, но когда я наткнулся на эту проблему, я подумал, что поделюсь некоторыми наблюдениями.

Как заявил daxim, APR :: UUID использует libuuid.Однако, по крайней мере, в некоторых реализациях libuuid генерирует не случайный (v4) UUID, а UUID v1 (на основе MAC-адреса и временной метки).Они действительно уникальны (если ваш MAC-адрес действительно уникален), но они извлекают информацию (ваш MAC-адрес и время создания UUID) и могут быть, по крайней мере, несколько предсказуемы.

Если генерация UUIDКод соответствует спецификации, вы можете узнать, какая версия UUID генерируется, посмотрев на первую цифру из 3 группы.v1 UUID не случайны, а предсказуемы.UUID v4 являются случайными и (предположительно) непредсказуемыми.

...