php ГПСЧ mt_rand()

309
08 сентября 2017, 22:51

Здравствуйте! Назрел ещё один вопрос, как можно восстановить seed для mt_srand(), который использовался для генерации чисел с помощью mt_rand()? Сами числа известны, нужно по ним подобрать seed.

Answer 1
  1. Если у Вас имеется последовательность псевдослучайных чисел, сгенерированная именно mt_rand, то Вы можете попробовать перебрать все возможные варианты сида. Если имеющаяся у Вас последовательность псевдослучайных чисел достаточно длинная, и mt_rand не использует какой-нибудь сторонний источник энтропии к введённому сиду, то можно однозначно восстановить использованный сид.
  2. Если алгоритм генерации имеющихся у Вас чисел не известен, то, очевидно, необходимо восстановить не только какой-то сид, но и сам алгоритм генерации. Ответ на то, как это сделать, был дан в другом Вашем вопросе.
  3. Последовательность чисел может быть слишком короткой, или для её генерации мог использоваться криптографически стойкий генератор псевдослучайных чисел, либо она вообще могла быть сгенерирована аппаратным генератором случайных чисел, а следовательно, подбор генератора и сида, которыми была сгенерирована имеющаяся у Вас последовательность чисел может быть очень сложным.

Определитесь, что конкретно Вам необходимо? Найти именно тот генератор и сид, которыми была сгенерированна имеющаяся у Вас последовательность чисел, либо сконструировать свой собственный генератор, который бы при некотором сиде выдавал некоторую конкретную последовательность чисел?

READ ALSO
PHP PDO количество строк - как правильно?

PHP PDO количество строк - как правильно?

У меня есть такой вопросНужно узнать количество строк, которые вернулись в результате запроса SELECT

694
PHP, помогите с регуляркой

PHP, помогите с регуляркой

Есть категории товаров, которые отдаются в виде

200
Добавление элемента в инфоблок

Добавление элемента в инфоблок

Пытаюсь добавить в инфоблок новый элемент, но на выходе получаю ошибку такого рода "Для добавления элементов инфоблоков используйте вызов...

422
Тестовые письма на почте. Laravel

Тестовые письма на почте. Laravel

Такие сообщение(обратный звонок на сайте) приходят на почту каждый день, по 10-15 шт

381