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