2010-05-08 75 views

回答

9

random已知是可预测的,因此不能用于安全的伪随机数生成。 arc4random是一个较新的,不太可预测的伪随机数发生器。如果你没有使用它来保证安全,random会正常工作。

+4

'random'比'arc4random'快得多,这就是为什么你会使用它。 – 2010-05-08 13:25:12

+2

@Colin Cislason:快多少?如果你没有创建1000个随机数,它会有什么区别吗? – Emil 2010-05-08 13:57:05

+0

@Emil它可能没有那么大的影响。我没有自己做任何测试。看到下面的链接进行测试,但是这与'rand'相比,并且使用了许多迭代:http://www.indieappsalliance.org/forum/viewtopic.php?f=10&t=13 – 2010-05-08 19:20:54

0

根据您的系统,random()可能是也可能不是旧的,可​​靠的,可预测的UNIX random()。在具有/ dev/random设备的现代FreeBSD系统和Linux 2.6系统上,默认的random()实现从/ dev/random读取,直到耗尽。这可能会产生比任何数字序列发生器都要好的随机数,具体取决于您在/ dev/random中引入的随机性来源。

强烈建议您咨询您正在部署该程序的系统的文档(手册页等)。

+0

真的吗? -1?你真的*应该*在阅读那个向下的箭头之前阅读有效的手册页。 – Wexxor 2012-05-23 03:28:28

+3

我不能让用户投票给你,但问题是标签为'iphone'。从“根据您的系统”开始并提到Linux可能不是一个合适的答案。 – user371320 2012-06-09 20:18:39