真*伪 随机数
短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
随机数特点
1 随机性:没有任何顺序
2 不可推测性:无法从已有的数据,推算下一个
3 不可重复性:任何随机数之间不重复
真随机数
- 伴随着物理实验的,比如:抛硬币、掷骰子、电子元件的噪音、核裂变等,它的结果符合三大特性的。
- 具体实现:intel通过电阻和振荡器生成热噪声作为信息熵资源;Unix/Linux的 /dev/random 和 /dev/urandom采用硬件噪音生成随机数
- 优点:真实随机数
- 缺点:需要硬件配合,技术要求高,效率
伪随机数
- 通过一定算法,获得一个随机的值,并不是真的随机。伪随机又分为强伪随机数和弱伪随机数
强伪随机数
- 更加贴近【真随机数】,满足特性的:随机性和不可推测性,难以预测
- 具体实现:java的SecureRandom随机数生成器,就是强伪随机数,因为它内部是使用 击键动作 来作为种子,而击打键盘操作是物理操作,且是不规律的。
弱伪随机数
- 满足随机性,可以预测
- 具体实现:典型的比如java语言里的Random生成器,它是使用时间作为种子(线索)去构造生成器的,假如攻击者获得了构造生成器的时间,那么就可以预测到下一个随机数
总结
-
- 安全系数高、随机性要求高,推荐使用SecureRandom;
-
- 要求不高,使用Random即可;
- 3.说到Random随机数,Collections类下面有一个随机排序算法–shuffle洗牌算法,其内部也是借助random来实现的。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341