К сожалению, 8 базовых 36 цифр немного малы.Это всего 2 миллиона миллионов возможных идентификаторов, поэтому, если вы генерируете 1,4 миллиона случайно, вероятность столкновения составляет примерно половину.
Вы можете использовать PRNG с большим периодом и сопоставить его текущее состояние с вашим идентификатором.пространство через некоторую биекцию.41-битный LFSR не был бы безотказным, но вполне мог бы быть в порядке, если вещь, которую вы защищаете, не так уж и ценна.Вы можете распределить несколько ресурсов без необходимости постоянного доступа к БД, предоставляя различным узлам разные позиции для запуска цикла.
Проблема любого такого детерминированного метода, конечно, состоит в том, что, если он сломан, онполностью сломан, и вы больше не можете доверять никаким идентификаторам.Таким образом, удаление чисел из базы данных - это, вероятно, способ пойти и распределить, раздавая их партиями по тысяче или как угодно.
Если бы у вас было больше места для идентификации, то вы могли бы использовать более безопасные методы,например, идентификатор может состоять из чего-то, чтобы идентифицировать источник, увеличивающийся серийный номер для этого источника и HMAC, использующий ключ, уникальный для источника.