SecureRandom产生强随机数简介
2015-08-06 10:27
309 查看
SecureRandom是强随机数生成器,主要应用的场景为:用于安全目的的数据数,例如生成秘钥或者会话标示(session ID),弱随机数生成器会产生严重的安全问题,而使用SecureRandom这样的强随机数生成器将会极大的降低出问题的风险。
SecureRandom与Random有很强的关系。
1. SecureRandom继承于Random,看一下它的两个构造函数构造函数:
2. SecureRandom与Random的常见的两个方法如下所示:
[b]获得一个随机的int数:[/b]
next方法如下:
获得随机的字节数组:
获得别的随机数的方法见下图:
想更深入的SecureRandom研究文章,请参考别的资料。
SecureRandom与Random有很强的关系。
1. SecureRandom继承于Random,看一下它的两个构造函数构造函数:
public SecureRandom() { super(0);//调用Random的构造函数 getDefaultPRNG(false, null); }
public SecureRandom(byte seed[]) { super(0);//调用Random的构造函数 getDefaultPRNG(true, seed); }
2. SecureRandom与Random的常见的两个方法如下所示:
[b]获得一个随机的int数:[/b]
public int nextInt() { return next(32); }
next方法如下:
protected int next(int bits) { long oldseed, nextseed; AtomicLong seed = this.seed; do { oldseed = seed.get(); nextseed = (oldseed * multiplier + addend) & mask; } while (!seed.compareAndSet(oldseed, nextseed)); return (int)(nextseed >>> (48 - bits)); }
获得随机的字节数组:
synchronized public void nextBytes(byte[] bytes) { secureRandomSpi.engineNextBytes(bytes); }
获得别的随机数的方法见下图:
想更深入的SecureRandom研究文章,请参考别的资料。
相关文章推荐
- PHP自动化测试
- 集训第四周(高效算法设计)P题 (构造题)
- Windows10开发手记-Windows App Certification Kit使用教程
- 敏捷开发之Scrum扫盲篇[转]
- uvalive 2453
- Quora如何在快速开发中保持高品质代码
- Question2Answer 安全
- 最短路_POJ_1062
- UIViewContentMode,ios图片排版
- 南邮 OJ 1653 南邮的面积
- boost::asio 技术文档【收藏】
- 解决 WIN7中ipconfig ping 不是内部或外部命令的办法
- Android触摸屏事件派发机制详解与源码分析一(View篇)
- Android一个权限相关的bug修复过程
- CodeForces 567C Case of Matryoshkas map+递推
- ACM题集以及各种总结大全!(转)
- CUDNN v3例程演示
- MD5加密与验证
- SVN-服务器搭建
- DELL PowerEdge 2950更换告警硬盘