получить первые 12 бит (максимум 4095) как день от первого выпуска вашей программы (будет уникальной частью), другие 38 бит используются от случайного системного вызова / функции.
так что вы перепроверили в последний день только значения для уникальных.
извините, ни в коем случае GRANT уникален из непредсказуемого (случайного) значения.
Вы можете использовать больше частей от даты, например, до секунд. Вы можете изменить предсказуемые (дата) биты, но это не повысит безопасность.
В любом случае вы должны балансировать между уникальным временем проверки / случайным качеством. Чтобы увеличить скорость проверки, можете использовать бинарное дерево или другую технику.
также вы можете использовать значение таймера до миллисекунд ... для занятой системы это будет уникально (если блокировка потока + 50 мс в спящем режиме) и не так предсказуемо в многопоточной среде.