php ГПСЧ mt_rand()

304
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

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

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

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

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

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

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

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

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

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

377