Какова цель UUID или GUID, по сравнению со случайной строкой? - PullRequest
0 голосов
/ 10 октября 2018

Поскольку они содержат тире и только шестнадцатеричные символы, не будет ли случайные строки (включая специальные символы) иметь больше возможных комбинаций?

Я знаю, что их стандарт является преимуществом, но вы также можете решить использовать случайные строки из N символов и определенные символы из белого списка для предотвращения различных форматов в системах.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

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

ОбщееШестнадцатеричная форма - это просто удобное для человека представление, которое занимает вдвое больше места.Вы не должны использовать это для вещей, которые люди не увидят;просто сохраните двоичную форму и конвертируйте при необходимости.

0 голосов
/ 10 октября 2018

Вы в основном ответили на свой вопрос.Когда сталкиваешься с дилеммой «катайся сам» или пользуйся тем, что есть - выбор первого должен быть результатом тщательного рассмотрения.Но чтобы ответить на ваш вопрос, любая хорошо сгенерированная 128-битная последовательность будет в значительной степени гарантированно уникальной, поэтому основное преимущество заключается в инструментах, доступных для работы с UUID, и их общемировом признании за то, что они являются приличным непоследовательным идентификатором.

Кроме того, если у вас есть время, посмотрите на это: Является ли GUID уникальным в 100% случаев?

...