Wie generiert man einen zufälligen alphanumerischen String in Java?
Hallo zusammen! Ich brauche Hilfe bei der Generierung eines zufälligen Strings, der nur Ziffern und Buchstaben (lateinisch, case-insensitive) enthält. Ich schreibe eine kleine Anwendung zur Generierung von Passwörtern und Bestätigungscodes.
Ich habe versucht, `Math.random()` und Zeichenverkettung zu verwenden, aber der Code wird schrecklich und unzuverlässig. Hier ist, was ich habe:
```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();
}
```
Das funktioniert, aber ich bin besorgt über die Verwendung von `Math.random()` – ich habe gehört, dass dies nicht der sicherste Weg für Kryptographie ist. Außerdem treten manchmal sich wiederholende Muster auf, und das ist seltsam.
Könnt ihr mir sagen, wie man in Java richtig zufällige alphanumerische Strings generiert? Es soll:
1