java随机数生成(求一个java安全随机数生成的方法)

网上找到几种随机数生成的方法但是不知道那种比较安全
1.SecureRandom
2.double pross = (1 + rm.nextDouble()) * Math.pow(10, strLength);

第一种 实现网上的有点看不懂

萌新就问 =|=

5个回答

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());
}
}

在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法

     /**
     * 获取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();
    }
    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的帮助文档,最好看源代码,了解这个类的用法

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问