Из вопроса:
new BigInteger(130, new SecureRandom()).toString(32);
Результатом будет строка из случайных букв-цифр длиной 26 символов.
Мне понятно почему 32, что это за число. Но я никак не могу понять почему именно 130. Как это число влияет на результат, на конечную длину строки.
Пожалуйста, объяснить в чём же связь.
Используется конструктор BigInteger с указанием максимальной длины случайного числа в битах.
130 бит соответствует 26 цифрам при использовании toString(32), т.к. каждые 5 бит преобразуются в одну цифру (2^5=32)
При использовании другого основания (radix) вместо 32 нужно учитывать количество требуемых битов - двоичный логарифм основания.
bits_per_digit = ln(radix) / ln(2)
Например, на каждую цифру по основанию 36 требуется 5.17 бит. Умножаем 5.17 на число цифр, округляем вверх. Для 26 цифр это будет 135 бит.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Существует ли в Spring Аннотация, которая позволяет при занесении строки в таблицу удалить её через время? например, суткиИ если таковой нет,...
Имеется база mysql/postgresНет никакого серверного приложения
Возникла проблема, пытаюсь загрузить файл XLSX и у меня выдает ошибку, хотя при загрузке XLS файла все нормальноКак это можно исправить? Вроде,...
Похожие вопросы, но ответов на них так и не последовало, возможно сейчас сюда забредет гуру спринга и разложит все по полочкам: тыц и тыц