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

时间:2014-01-15 13:46:36

标签: java random

我要做的是创建一些用于密码的随机数。 我想要实现的格式有点像3794093 Y。我已经有代码执行此操作,但它涉及创建随机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())));
}

1 个答案:

答案 0 :(得分:0)

  

我正在寻找的方法是将随机数和字符串转换成一个字符串或类似字符串。

足够简单。将值传递到新的String对象constructor

String code = new String(ppsn[i]+" " +alphabet.charAt(r.nextInt(alphabet.length())));

我过去如何做到这一点

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

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

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

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