Php 制作一个真正的随机数发生器?

Php 制作一个真正的随机数发生器?,php,javascript,jquery,random,random-sample,Php,Javascript,Jquery,Random,Random Sample,我正在制作一个小的网络应用程序,它需要随机的东西。 这只是一个小例子:向用户返回一个介于和10之间的随机数 我计划使用Javascript和jQuery计算器本身来实现这一点 我的问题是:如何使它的函数真正随机而不是伪随机?PHP函数是否比Javascript函数更随机 为了回答这个问题,让我们假设我想要的是一个介于X和Y之间的真正的随机数。您调用的函数都不是真正的随机数。都是,;事实上,大多数PRNG都很好,如果它们不适合您的应用,我会感到惊讶。此外,虽然一些PRNG因其出现Java随机性的小

我正在制作一个小的网络应用程序,它需要随机的东西。 这只是一个小例子:向用户返回一个介于和10之间的随机数

我计划使用Javascript和jQuery计算器本身来实现这一点

我的问题是:如何使它的函数真正随机而不是伪随机?PHP函数是否比Javascript函数更随机


为了回答这个问题,让我们假设我想要的是一个介于X和Y之间的真正的随机数。

您调用的函数都不是真正的随机数。都是,;事实上,大多数PRNG都很好,如果它们不适合您的应用,我会感到惊讶。此外,虽然一些PRNG因其出现Java随机性的小周期而臭名昭著,但我所知道的每种现代语言,包括JavaScript、PHP及其加密包,Java都有非常好的PRNG

收集更多随机数据的最佳方法是从外部随机源获取数据。一种可能是要求用户在窗口中移动鼠标一段时间,定期收集鼠标坐标。一些军事、银行和其他高安全系统使用热噪声传感器等硬件获取尽可能接近随机的数据;但是,这样的硬件支持将不适用于web应用程序


注意,像使用系统时钟这样的黑客并不比PRNG更好;大多数PRNG使用这些数据的组合来初始化它们的种子。

我认为没有任何方法可以完全消除程序中随机性的确定性方面。你可以做所有你想最小化、减轻和混淆的事情,不管你用什么方法从帽子里提取数字,但你永远不可能真正做到完全随机


你可以用足够的细节来设计一个过程,使它实际上是随机的,但真正的随机可能是不可能的。

虽然你不能用php实现真正的随机,但你可以使用它。您可以通过php中的curl或javascript中的ajax进行连接。
据我所知,他们将大气噪音作为随机种子。

你还不了解矩阵电影;一种函数并不比另一种语言中的函数更随机。所有函数都是相同的伪随机函数。伪意味着,根据定义,计算机无法从稀薄的空气中提取随机数。它就是不能。计算机严格地根据规则准确地计算。系统中任何地方都没有随机性。尽管随机性被认为具有强大的功能,但它是计算机无法做到的一件事,而煮咖啡也是如此

对于真正的随机性,你需要一个外部的、自然的来源。比如测量原子衰变,或者其他一些不可预测的、真正随机的东西。其他任何东西都只是伪随机性,其质量可能不同


好的PRNG尝试在熵池中收集外部干扰;e、 g.Linux'/dev/random考虑了系统驱动程序噪声,这可能是由于随机数据包击中以太网端口或用户鼠标移动造成的。这种随机性到底有多大还值得商榷,但在大多数情况下,很难预测至少是适当的随机性。

在计算机上生成真正的随机变量是不可能的。但是,您可以改进标准生成器。假设您有两个基本生成器。创建一个表并用第一个生成器中的值填充它。然后,如果您想得到一个数字,第二个会生成一个索引并从表中返回相应的值。然后将此值替换为新值。。。我忘了这个发电机是怎么叫的。。。希望有帮助。
顺便说一句,对不起我的英语。

我的建议是,通过加密算法对本地时间和日期进行加密,生成一个二进制随机字符串。在这种情况下,尝试收集所有可能的随机数据源,并将它们作为输入消息和输入键加载

正如您在前面的回答中所看到的,您对随机数据的使用和要求非常重要。如果您的应用程序很难或不可能预先猜出某个数字的值,则该数字是随机的。请注意,对于某些应用程序,相同的数字源可能被视为随机的,而对于其他应用程序,它们不是随机的。显然,如果您需要高质量的随机数来满足苛刻的应用程序,您将遇到严重的问题


TRNG98

不可能创建真正的随机数。为了让计算机产生随机性,它们必须从一些初始值或状态(通常称为种子)开始。这就是为什么它被称为伪随机;这并不是真正的随机性,但在大多数情况下,它已经足够随机了。为了完整性起见,应该指出的是,虽然这在计算领域已经存在了几十年,但现在正在制造的许多微处理器,如英特尔的常春藤桥芯片,都有一个改变游戏规则的芯片上的TRNG。现在确实可以从代码中获得真正的随机数,尽管是代码 它访问特殊的硬件。