1

我有一个大量使用 mt_rand 和 mt_srand 的应用程序,问题是许多主机提供商默认启用 suhosin.mt_srand.ignore,这导致我的应用程序无法正常工作,因为播种不起作用...

由于我的应用程序已经在一些托管服务器上运行(不启用此扩展),我想在 php 中创建我自己的 mt_rand 和 mt_srand 函数,并让它们返回与内置服务器相同的结果(对于相同的种子)在功能上,这样我就不会依赖主机提供商是否启用了这个扩展。

我看过 rand.c ( http://lxr.php.net/xref/PHP_5_4/ext/standard/rand.c ),它是 mt_rand() 和 mt_srand() 的源代码,但我知道C很差,我自己不能迁移到php。

有谁知道怎么做?或者在帮助我的时候?

4

1 回答 1

0

你可以尝试一个普通 PRNG 算法的纯 PHP 实现,例如https://github.com/ruafozy/php-mersenne-twister

但是,请不要依赖这些数字来保证密码安全——这意味着使用这些数字例如在游戏中生成随机迷宫,但不能用于加密您的日记。

于 2015-06-17T09:10:05.393 回答