Avatar ·

¿Cómo generar una cadena alfanumérica aleatoria en Java?

¡Hola a todos! Necesito ayuda para generar una cadena aleatoria que contenga solo dígitos y letras (latín, sin distinción de mayúsculas y minúsculas). Estoy escribiendo una pequeña aplicación para generar contraseñas y códigos de verificación. Intenté usar `Math.random()` y concatenación de caracteres, pero el código resulta horrible y poco confiable. Esto es lo que tengo: ```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(); } ``` Esto funciona, pero me preocupa el uso de `Math.random()` — he oído que no es la forma más segura para criptografía. Además, a veces se obtienen patrones repetitivos, y es extraño. Indíquenme cómo generar correctamente cadenas alfanuméricas aleatorias en Java. Necesito que: