随机数分类
- 真随机数
- 伪随机数
2.1 强伪随机数
2.2 弱伪随机数
真随机数:其定义为随机样本不可重现。实际上只要给定边界条件,真随机数并不存在,可是如果产生一个真随机数样本的边界条件十分复杂且难以捕捉(比如计算机当地的本底辐射波动值),可以认为用这个方法演算出来了真随机数。(百度百科)
伪随机数:通过一定算法得出,比如:计算机软件实现的是伪随机数。
强伪随机数:难以预测的随机数,可用于密码学
弱伪随机数:容易预测的随机数,不可用于密码学
我们常说的编程语言的随机数,其实是伪随机数。弱伪随机数不可用于密码学,若是用于生成小学生的算术题当然没问题。
下面借用random.org两幅图说明强伪随机和弱随机数的区别。


如何在各种编程语言中生成安全的随机数?已经比较全面了。我补充了一篇iOS如何生成安全的伪随机数
相关文章
参考文献
[random.org] Statistical Analysis
网友评论