网上找到几种随机数生成的方法但是不知道那种比较安全
1.SecureRandom
2.double pross = (1 + rm.nextDouble()) * Math.pow(10, strLength);
第一种 实现网上的有点看不懂
萌新就问 =|=
package com.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
public class CreatRandom {
public static final String getRondow() {
String[] array = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
StringBuffer s = new StringBuffer();
Random random = new Random();
/*Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
String newdate = dateFormat.format(date);
s.append(newdate.substring(2, 4));//年
s.append(newdate.substring(5, 7));//月
s.append(newdate.substring(8,10));//日
*/ for (int i = 0; i < 4; i++) {//4位随机数
s.append(array[random.nextInt(4)]);
}
return s.toString();
}
public static void main(String[] args) {
System.out.println(getRondow());
}
}
/**
* 获取count个随机数
*
* @param count 随机数位数
* @return
*/
public static String generatorNumber(int count) {
StringBuffer sb = new StringBuffer();
String str = "0123456789";
Random r = new Random();
for (int i = 0; i < count; i++) {
int num = r.nextInt(str.length());
sb.append(str.charAt(num));
str = str.replace((str.charAt(num) + ""), "");
}
return sb.toString();
}
在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法
Random r1 = new Random();
Random r2 = new Random();
//无参构造使用的是参数作为种子数
Random r3 = new Random(100);
Random r4 = new Random(100);
//产生随机数调用nextXXX()方法
System.out.println(r1.nextInt(10));
System.out.println(r1.nextInt(10));
System.out.println(r2.nextInt(10));
System.out.println(r2.nextInt(10));
System.out.println("-----------------");
System.out.println(r3.nextInt(10));
System.out.println(r3.nextInt(10));
System.out.println(r4.nextInt(10));
System.out.println(r4.nextInt(10));
java里有个Random类是可以产生随机数的,自己可以看看jdk的帮助文档,最好看源代码,了解这个类的用法