Есть 2 ^ 20 различных возможных случайных значений.Таким образом, вероятность того, что два заданных случайных значения будут равны, равна 1 / (2 ^ 20) или около 1 на миллион .
Однако, если вы создаете несколько значений, тогда из-зак парадоксу дня рождения вам нужно будет сгенерировать только около 2 ^ 10 или около тысячи различных значений , чтобы получить 50% -ную вероятность того, что два из них будут равны!
Чтобы избежать этого, я бы рекомендовал не менее 128 бит.Для этого требуется около 2 ^ 64 (~ 18 миллиардов миллиардов) значений, прежде чем вероятность столкновения составит 50%.При кодировании в base-64 длина будет 22 символа.