PHP random_int播种

时间:2016-09-06 15:19:45

标签: php random

自PHP7起,为PRNG引入了一项新功能:random_int(http://php.net/manual/en/function.random-int.php

PHP手册中没有与此功能播种相关的信息,也无法使用Google在线查找与此相关的任何信息。

我可以手动设置种子,就像使用PHP srand或PHP mt_srand一样吗?或者我无法控制这个?或者操作系统是否自动完成播种?

1 个答案:

答案 0 :(得分:0)

我可以像使用PHP srand或PHP mt_srand一样手动设置种子吗?

不。

还是我对此无能为力?

正确的(ish-在Linux系统上,您可以使用RNDADDENTROPY ioctl来播种随机生成器,实际上,整个系统(包括php)上的所有内容都将从该随机生成器派生其加密安全的随机字节,但是您可能不想这样做,并且需要root)

还是播种是由操作系统自动且安全地完成的?

正确,在getrandom() api生成的Linux上(与从/ dev / random和/ dev / urandom读取的内容基本相同),在Windows上,它是通过BCryptGenRandom() api使用{{ 3}},在OpenBSD和FreeBSD上,它使用BCRYPT_RNG_ALGORITHM,所有这3个元素都提供图片安全的随机字节,相关的源代码可以在arc4random_buf() apihttps://github.com/php/php-src/blob/bb6f374048bc0b4203e4fec7fd4e887519f663d6/ext/standard/random.c

处找到。