首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PHP实现认证的随机数生成器

使用PHP实现认证的随机数生成器
EN

Stack Overflow用户
提问于 2013-01-25 19:41:54
回答 3查看 736关注 0票数 2

我会试着解释我的问题,如果不是具体的解决方案,但至少理论上的想法就足够好了。

我正在写随机数生成器- RNG (将只在Linux (Ubuntu)服务器上运行),这段代码将被认证(代码/程序可以随时使用sha1/md5散列进行检查,它必须有很多认证版本或类似的东西),所以它将无法再进行更改。基本上,我使用mt_rand函数来生成值和几个服务器参数,以及种子(mt_srand)的microtime。仍然不知道代码是否足够好用于认证,但这不是主要问题。认证公司说,我将被要求给出源代码和mt_rand函数的二进制代码(也可能是mt_srand )。那么,如何以最简单和正确的方式做到这一点呢?

发现在php_src_files\ext\standard\rand.c中的mt_rand函数,所以我应该以某种方式编译此扩展并加载到已安装的PHP作为扩展?

我对php和linux并不陌生,但我想问一下如何正确地使用它,这样在不同的linux服务器上部署这个RNG就不会那么头疼了。

提前谢谢。

更新:感谢你的回复,但正如我所说的,我问的不是如何编写,而是如何提取/编译/准备/使用部分php源代码进行认证……

EN

回答 3

Stack Overflow用户

发布于 2013-01-25 20:33:20

在Linux上,你可以从/dev/random中读取,它从环境噪声中产生高质量的随机比特。所以这可能会对你有帮助:

function dev_random_integer($min, $max)
{
    $stream = fopen('/dev/random', 'r');
    $randomBinary = fread($stream, 4); // read 4 bytes (32 bit)
    fclose($stream);
    $randomInt = unpack('l', $randomBinary); // convert to 32 bit integer

    $range = $max - $min + 1;
    return $min + ($randomInt % $range);
}

编辑:您不应该使用完全相同的代码,请查看下面的注释。

票数 2
EN

Stack Overflow用户

发布于 2013-01-25 20:47:24

您必须提供完整的PHP源程序和一个二进制PHP包(php-cli),该包可用于生成一个二进制流,以针对各种工具进行检查。(您可以询问您的认证提供商他们支持哪种操作系统)。

票数 0
EN

Stack Overflow用户

发布于 2019-02-22 06:12:33

虽然这是一个老问题,但它似乎是一个相关的问题。

我最近构建了一个赌场游戏,并使用了Zend/Math/Rand,它提供了加密安全的RNG。这款游戏通过了RNG认证测试,我的游戏现在也通过了认证!

你可以在packagist上找到这个库:https://packagist.org/packages/gamblingtec/certified-rng

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14521104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档