Я часто нахожусь в ситуации, когда я хочу быстро генерировать очень большое количество UUID.Было бы желательно «правильно» сгенерировать один UUID, а затем манипулировать им для генерации остальных.Например, я мог бы просто «добавить один» к младшим битам UUID.
Для большинства моих приложений я достаточно контролирую потребителей UUID, чтобы гарантировать, что они принимают эти UUID без каких-либо затруднений.Мне интересно, могу ли я сказать то же самое, если бы я не контролировал потребителей.
В частности, меня интересуют следующие три алгоритма:
- Генерация UUID v5с какой-то уникальной строкой.Для последующих UUID добавьте 1 в раздел «узел» (последние байты)
- Создать UUID v4 из псевдослучайного источника.Снова добавьте 1 в раздел «узел» для последующих идентификаторов UUID (фактически используя испорченный источник случайных чисел с сильной корреляцией с первым числом)
- Создание UUIDv5 с некоторой уникальной строкой.Вручную измените номер версии на v4 и начните добавлять 1 для последующих идентификаторов UUID.
Все они явно не являются стандартными с точки зрения стандарта.Тем не менее, есть ли какие-либо проблемы, которые заставили бы это следовать за буквой закона , только дух?