Использование незащищенного генератора случайных чисел в GmpRandomNumberGenerator - PullRequest
0 голосов
/ 03 мая 2020

Я использую GMP для создания генератора случайных чисел.

Вот код

namespace Mdanter\Ecc\Random;

class GmpRandomNumberGenerator implements RandomNumberGeneratorInterface
{
    /**
     * @param bool $noWarn
     */
    public function __construct($noWarn = false)
    {
        if ($noWarn !== true) {
            trigger_error('Using non-secure random number generator.', E_USER_WARNING);
        }
    }

    /**
     * {@inheritDoc}
     * @see \Mdanter\Ecc\RandomNumberGeneratorInterface::generate()
     */
    public function generate($max)
    {
        $random = gmp_strval(gmp_random());
        $small_rand = rand();

        while (gmp_cmp($random, $max) > 0) {
            $random = gmp_div($random, $small_rand, GMP_ROUND_ZERO);
        }

        return gmp_strval($random);
    }
}

Он отлично работает в PHP 5 без каких-либо проблем и ошибок. Но когда я пытаюсь сделать это в PHP 7, появляется ошибка, подобная этой.

Предупреждение. Использование небезопасного генератора случайных чисел. в C: \ xampp \ htdocs \ te.st \ libs \ vendor \ mdanter \ ecc \ src \ Random \ GmpRandomNumberGenerator. php в строке 13

Кто-нибудь может мне помочь исправить ошибка?

...