Здравствуйте, vsb, Вы писали:
vsb>Берёшь остаток от деления на 64. Если результат меньше 36, возвращаешь его. Иначе генерируешь новое число. Способ простой и даёт равномерное распределение.
Только вот никто не гарантирует, что тебе на входе не поступят 100500 (или хотя бы 100) значений все которые дадут остаток 36 или больше. В результате алгоритм формально несходящийся, а на практике с неровными таймингами, через которые можно тоже что-то вычислить.
vsb>Хотя для пароля проще взять 32 или 64 разных символа. Тогда заморачиваться не надо.
Ну да, base32/base64 в этом смысле проще — если есть библиотека.