Avatar ·

Generación de cadenas aleatorias en PHP: ¿cómo hacerlo correctamente y de forma segura?

¡Hola a todos! Soy un desarrollador PHP principiante, estoy escribiendo mi primer sitio con registro de usuarios. Necesito generar tokens aleatorios para confirmación de email y contraseñas temporales. Busqué en Google un método simple, pero no estoy seguro de que sea correcto. Esto es lo que uso actualmente: ```php function generateRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, $charactersLength - 1)]; } return $randomString; } echo generateRandomString(32); // Por ejemplo: "a3F8kL9mN2..." ``` Problemas que veo: 1. La función `rand()` — he leído que no es criptográficamente segura. 2. No hay garantía de que la cadena sea única. 3. No está claro cómo hacer que la cadena contenga solo letras o solo números. Indíquenme cómo generar cadenas aleatorias correctamente en PHP. Necesito ejemplos de c