简介
- 之前我们学习了Random的代码,但是其只是个伪随机数。
- 什么是伪随机数:Random随机数是有规律的,只要两个Random对象的种子相同,而且方法的调用顺序也相同,产生的随机数相同。
- 有伪随机数,就有真随机数。实际上真正的真随机数只能通过量子力学原理来获取,而我们想要的是一个不可预测的安全的随机数,SecureRandom就是用来创建安全的随机数的
- SecureRandom无法指定种子,它使用RNG(random number generator)算法。JDK的SecureRandom实际上有多种不同的底层实现,有的使用安全随机种子加上伪随机数算法来产生安全的随机数,有的使用真正的随机数生成器。实际使用的时候,可以优先获取高强度的安全随机数生成器,如果没有提供,再使用普通等级的安全随机数生成器
实例
```java public class SecureRandomTest { public static void main(String[] args) {
} }SecureRandom sr = null;try {// 获取高强度安全随机数生成器sr = SecureRandom.getInstanceStrong();} catch (NoSuchAlgorithmException e) {// 获取普通的安全随机数生成器sr = new SecureRandom();}byte[] buffer = new byte[16];// 用安全随机数填充buffersr.nextBytes(buffer);System.out.println(Arrays.toString(buffer));
推荐阅读
- SecureRandom:https://www.cnblogs.com/deng-cc/p/8064481.html
