大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
java如何生成随机,java生成随机数的两种方式。
java生成随机数有两种方法:
1、使用Math方法,Math.random()随机生成一个double类型[0,1),如果想生成1~100的随机数:
如:int num = (int)(Math.random()*100);
2、使用Random方法生成随机数
public static void testRandom() {
Random random = new Random();
random.setSeed(10000L);
for(int i = 0 ; i < 10 ; i ++) {
System.out.println(random.nextInt(1000));
}
System.out.println("------------------");
random = new Random();
random.setSeed(10000L);
for(int i = 0 ; i < 10 ; i ++) {
System.out.println(random.nextInt(1000));
}
}
结果如下:
208
572
116
475
500
574
641
166
727
670
------------------
208
572
116
475
500
574
641
166
727
670
3、使用SecureRandom生成随机数,代码如下:
public static void testSecureRandom() {
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
secureRandom.setSeed(10000L);
for(int i = 0 ; i < 10 ; i ++) {
System.out.println(secureRandom.nextInt(1000));
}
System.out.println("-------------------");
secureRandom = new SecureRandom();
secureRandom.setSeed(10000L);
for(int i = 0; i < 10 ; i ++) {
System.out.println(secureRandom.nextInt(1000));
}
}
结果如下:
851
624
367
62
625
156
930
530
346
260
-------------------
395
65
353
453
275
194
34
227
538
14
4、如何选择使用随机数?
首先我们知道java.util.Random的实例不是加密安全的,SecureRandom来获取加密安全的伪随机数生成器,以供对安全敏感的应用程序使用。以上二三可以很明显的发现,我要是知道setSeed值(即时间戳),很明显能把随机数给猜出来。所以不建议使用Random。
5、一些公司随机数选择的案例
可能某些小公司是让使用Random的,使用Random也可以获取到随机数,但是为了程序的安全性,还是使用SecureRandom比较好。
现在有好多公司,明文禁止使用java.util.Random。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158821.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...