如何在Java中生成随机字母数字字符串?
大家好!我需要帮助生成一个只包含数字和字母(拉丁字母,不区分大小写)的随机字符串。我正在编写一个小型应用程序,用于生成密码和验证码。
我尝试过使用 `Math.random()` 和字符拼接,但代码变得又丑又不可靠。以下是我现有的代码:
```java
public static String generateRandomString(int length) {
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
int index = (int) (Math.random() * chars.length());
sb.append(chars.charAt(index));
}
return sb.toString();
}
```
这能工作,但我对使用 `Math.random()` 感到不安——我听说这不是最安全的加密方式。此外,有时会出现重复的模式,这很奇怪。
请告诉我如何在Java中正确生成随机字母数字字符串?需要满足:1