小编gio*_*rea的帖子

随机密码生成器返回错误字符-Java

我目前正在使用以下代码生成随机密码:

static public String randomPasswordGenerator(int n, String valid) 
{ 
      char[] pwd = new char[n];
      Random rnd = new Random();
      for (int i = 0; i < pwd.length; i++)
      {
        pwd[i] = valid.charAt(rnd.nextInt(valid.length()));
      }
      return new String(pwd);
}
Run Code Online (Sandbox Code Playgroud)

当前有效参数设置为:

String valid = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ123456789#$&%£";
Run Code Online (Sandbox Code Playgroud)

有时,当我生成密码时,会发现正在生成奇怪的字符,例如,我可以得到:n9iB8Qj6inR(其中,最后一个字符不包含在有效集中)

知道为什么会这样吗?

非常感谢

编辑我虽然这与编码问题有关,但是在调试上述函数的返回字符串时,我可以直接看到那个奇怪的字符。另外,使用字符集作为“#$&%£”有时会返回所有字符以及那个奇怪的A(例如:&%Â&$&#£%#Â&)

java random passwords generator

2
推荐指数
1
解决办法
67
查看次数

标签 统计

generator ×1

java ×1

passwords ×1

random ×1