Avatar ·

Como gerar uma string alfanumérica aleatória única em PHP?

Olá a todos! Sou um desenvolvedor PHP iniciante e me deparei com uma tarefa: preciso criar strings aleatórias para identificadores de sessão, cupons e apenas para links únicos. Tentei implementar com `rand()` e concatenação, mas obtenho strings repetidas ou inseguras. Aqui está o que escrevi: ```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. Às vezes, strings idênticas são geradas em chamadas frequentes (por exemplo, em um loop). 2. Ouvi dizer que `rand()` não é criptograficamente seguro e é previsível. 3. Não sei como garantir a unicidade se preciso de 1000 strings de uma vez. Dicas de como gerar strings alfanuméricas aleatórias corretamente em PHP? Preciso considerar desempenho, segurança e evitar colisões.