我想用JAVA写一个程序,用于给用户产生一套复杂的密码,可是在random这遇到了问题。
我的想法是用变量来接受用户输入的要求生成几位数的密码,然后根据那个变量来生成一定位数的密码。可是random我不会用!
大家给我一段示例看看撒。

解决方案 »

  1.   

    就new java.util.Random().nextInt()
    或者Math.random()
      

  2.   

    String s = "";
    for(int i = 0; i < num; i++){}
      

  3.   

    Random rand = new Random(); 
    String s = "";
    for(int i = 0; i < num; i++){//num是需要的位数
       s += Integer.toString(rand.nextInt(9));
    }
      

  4.   

    import java.util.Random;public class Rand { /**
     * @param n: 代表要生成的随机数的位数
     * 返回的结果是一个n位数的随机数
     */
    static int genRandNum(int n)
    {
    int num=0;
    if(n<=0) return 0;
    int start=(int)Math.pow(10, n-1);
    int end=(int)Math.pow(10, n);
    Random ra=new Random();
    num=start+ra.nextInt(end-start);
    return num;
    }
    public static void main(String[] args) {
    System.out.println(genRandNum(2)); }}
      

  5.   

    //密码不仅仅是数字的
    //你可以通过ascII码,把不想要的(例如空格,换行等等去掉)
    import java.util.Random;public class TestRandom{
    public static void main(String[] args)throws Exception{
    //用户输入的长度
    int num = 9;

    Random r = new Random();

    byte[] b = new byte[num];

    r.nextBytes(b);

    for(int n=0;n<b.length;n++){

    if(b[n]<0){

    b[n] += 127;
    }
    }
    System.out.println(new String(b));
    }
    }
      

  6.   

    Random rand = new Random(); 
    String s = "";
    for(int i = 0; i < num; i++){//num是需要的位数
       s += Integer.toString(rand.nextInt(9));

    (rand.nextInt(9)) Int(9)是什么意思啊
      

  7.   

    rand.nextInt(9)就是生成9以内的 INT数
      

  8.   

    //指定生成随机数的长度
    int num = 9;Random r = new Random();
    //建造一个字节数组,长度与指定长度一样
    byte[] b = new byte[num];
    //生成随机字节并将其置于用户提供的字节数组中
    r.nextBytes(b);
    //判断字节的ascII码的取值范围
    for(int n=0;n<b.length;n++){

    //确保每个字节的ascII都在0-127之间
        if(b[n]<0){
    //可以通过ascII码,把不想要的(例如空格,换行等等去掉)
          b[n] += 127;
      }
    }
    //通过字节数组建造字符串,就是你想要的随机密码
    String str = new String(b);