Como gerar uma string alfanumérica aleatória em Java?
Olá a todos! Preciso de ajuda para gerar uma string aleatória contendo apenas dígitos e letras (latim, sem distinção de maiúsculas/minúsculas). Estou escrevendo um pequeno aplicativo para gerar senhas e códigos de verificação.
Tentei usar `Math.random()` e concatenação de caracteres, mas o código fica horrível e não confiável. Aqui está o que tenho:
```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();
}
```
Isso funciona, mas me incomoda o uso de `Math.random()` — ouvi dizer que não é a maneira mais segura para criptografia. Além disso, às vezes aparecem padrões repetitivos, o que é estranho.
Digam-me como gerar strings alfanuméricas aleatórias corretamente em Java? Preciso que: