Avatar ·

Geração de string aleatória em PHP: como fazer corretamente e com segurança?

Olá a todos! Sou iniciante em PHP e estou escrevendo um pequeno site. Preciso gerar strings aleatórias para tokens de sessão, senhas temporárias e identificadores de links. Encontrei na internet o seguinte código: ```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; } ``` Mas estou com dúvidas sobre alguns pontos: 1. A função `rand()` — ouvi dizer que ela não é muito aleatória. 2. Se precisar de 1000 strings, o script fica lento. 3. Não sei se isso é adequado para fins criptográficos (tokens). Posso usar esta função para gerar senhas? Como fazer uma geração verdadeiramente aleatória e segura? Existem funções embutidas no PHP para isso? Agradeço por uma explicação detalhada com exemplos. Versão