Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中创建用作密码的随机字符串_Java_Random - Fatal编程技术网

如何在java中创建用作密码的随机字符串

如何在java中创建用作密码的随机字符串,java,random,Java,Random,我想做的是创建一个随机数作为密码。 我试图实现的格式类似于3794093y。我已经有了这样做的代码,但是它需要创建一个随机int和一个随机char,并将两者结合起来。这将是好的,但我想让程序要求用户输入他们的代码。如果他们输入代码并与之匹配,则允许他们访问程序 我要寻找的是一种将随机数和字符转换为一个字符串或类似内容的方法 这是我目前拥有的代码。我不想让代码为我完成,因为我想尝试自己去做,只是需要关于我哪里出了错/我遗漏了什么的建议 Random r = new Random(); Strin

我想做的是创建一个随机数作为密码。 我试图实现的格式类似于
3794093y
。我已经有了这样做的代码,但是它需要创建一个随机int和一个随机char,并将两者结合起来。这将是好的,但我想让程序要求用户输入他们的代码。如果他们输入代码并与之匹配,则允许他们访问程序

我要寻找的是一种将随机数和字符转换为一个字符串或类似内容的方法

这是我目前拥有的代码。我不想让代码为我完成,因为我想尝试自己去做,只是需要关于我哪里出了错/我遗漏了什么的建议

Random r = new Random();

String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

for (int i = 0; i < 50; i++) {
    int ppsn[]=new int[50]; //Array for student number
    ppsn[i] = 3700000 + (int)(Math.random() * ((3800000 - 3700000) + 1));
    System.out.println(ppsn[i]+" " +alphabet.charAt(r.nextInt(alphabet.length())));
}
Random r=new Random();
字符串字母表=“abcdefghijklmnopqrstuvxyz”;
对于(int i=0;i<50;i++){
int ppsn[]=new int[50];//学生编号数组
ppsn[i]=3700000+(int)(Math.random()*((3800000-3700000)+1));
System.out.println(ppsn[i]+“”+alphabet.charAt(r.nextInt(alphabet.length()));
}
我要寻找的是一种将随机数和字符转换为一个字符串或类似内容的方法

很简单。将值传递到新的
字符串
对象
构造函数

String code = new String(ppsn[i]+" " +alphabet.charAt(r.nextInt(alphabet.length())));
我过去是怎么做到的

我以前遇到过这个问题,我决定使用哈希算法来帮助我生成密码。我不得不放弃严格的格式,但随机数的截断消息摘要提供了广泛而多样的分发

首先,您可以了解如何使用哈希值。然后可以将其截断为更易于管理的大小,例如16个字符

byte[] digest; // Assume it is filled with output of hashing algorithm

String passcode = new String(digest).substring(0, 16);

这个代码是做什么的?你把它变成一根绳子有什么困难?