真伪随机数

随机数
我们平常使用的代码都有随机数,比如js中的random,php中的mt_rand,Java中的random,尽管不同的语言中的随机数都不一样,但是都逃不了这些生成随机数的函数,生成的都是个伪随机数
这个时候有人就要问了
什么叫伪随机什么叫真随机
伪随机一般说的是产生的随机数并不是真正意义上的随机,它有迹可循,甚至有规律可循
一般伪随机数是由一个随机种子+随机数生成器生成的,这里的种子有可能来自计算机内部的时间,计时器的计数值
然后通过一定的计算方法计算出来的值,也就是说,只要掌握了时间,和计算方法,就能算出随机数的规律,同时也可以知道下一个随机数的值,这个规律也可以把它看做一个周期,等一个周期结束后,它的值就会重复,所以一个伪随机数的运算周期的长短影响着这个伪随机数的强弱,但也不能说伪随机数的强弱完全就是由运算周期的长短来决定的,随机数的算法也影响着伪随机数的强弱。
于是因为伪随机的强弱,我们会把伪随机分为弱伪随机和强伪随机。
那么弱伪随机、强伪随机和真随机的区别是什么呢
弱伪随机:满足随机性,但是不完全随机,跟真正的随机数还有很大区别,容易被预测,且作用密码域无法保障安全
强伪随机:满足随机性,它更接近真正的随机,但是还是会有区别,难以被预测,可以作用于密码域。
真随机数:完全满足随机性,完全乱序,没有规则,没有办法通过已经获得的数值推算出下一个随机值,且不会发生重复,无法被预测。可以用于密码域技术。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值