Слушай, а ты когда-нибудь задумывался, как работает обычная кнопка «сгенерировать пароль» или функция random() в коде? Мы привыкли верить, что компьютер — это такая всемогущая машина, которая может выдать любое число из головы. На самом деле, это одна из самых больших иллюзий в IT. Тут такое дело: сама природа процессора противоречит понятию случайности. Процессор — это строгий исполнитель алгоритмов. Если ты дашь ему одну и ту же формулу и одни и те же входные данные, он всегда выдаст один и тот же результат. Никакой импровизации, только сухая математика. То, что мы видим в языках программирования — это не случайные числа, а псевдослучайные. Под капотом там крутятся сложные формулы, которые берут какое-то одно стартовое число (его называют «seed» или зерно) и превращают его в длинную последовательность символов. Проблема в том, что если злоумышленник узнает это стартовое число, он сможет предсказать всю цепочку «рандомных» паролей или ключей. Это как знать первый кадр фильма — всё ост