Avatar ·

¿Cómo generar una cadena alfanumérica aleatoria única en PHP?

¡Hola a todos! Soy un desarrollador PHP principiante y me enfrenté a una tarea: necesito crear cadenas aleatorias para identificadores de sesiones, cupones y simplemente para enlaces únicos. Intenté implementarlo con `rand()` y concatenación, pero obtengo cadenas repetidas o inseguras. Esto es lo que escribí: ```php function generateRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, strlen($characters) - 1)]; } return $randomString; } ``` Problemas: 1. A veces se generan cadenas idénticas cuando se llama con frecuencia (por ejemplo, en un bucle). 2. He oído que `rand()` no es criptográficamente seguro y es predecible. 3. No sé cómo garantizar la unicidad si necesito 1000 cadenas a la vez. Por favor, indíquenme cómo generar correctamente cadenas alfanuméricas aleatorias en PHP. Debo tener en cuenta el rendimiento, la seguridad y evitar colisiones.