Вы явно не говорите, что подразумеваете под «надежным», но я предполагаю, что вы пытаетесь избежать столкновений.Как говорит wildplasser, для случайных идентификаторов это все о парадоксе дня рождения, и вероятность столкновения в пространстве идентификаторов с 2 ^ n идентификаторами достигает 50%, когда используются 2 ^ (n / 2) идентификаторов.
На странице Википедии Атаки на день рождения есть большая таблица, иллюстрирующая вероятности столкновений при различных параметрах;например, с 64 битами и желаемой максимальной вероятностью столкновения 1 на 1 миллион, вы можете иметь около 6 миллионов идентификаторов.
Имейте в виду, что существует намного более эффективный способ представления данных в символах, чем в шестнадцатеричном;Например, base64 дает вам 3 байта на 4 символа, то есть 10 символов дают вам 60 бит, а не 40 с шестнадцатеричным.