在PHP中生成随机字符串:如何正确且安全地实现?
大家好!我是PHP新手,正在编写一个小型网站。我需要为会话令牌、临时密码和链接标识符生成随机字符串。
我在网上找到了这样的代码:
```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;
}
```
但有几个地方让我困惑:
1. 函数 `rand()` —— 我听说它不够随机。
2. 如果需要生成1000个字符串,脚本运行缓慢。
3. 不知道这是否适用于加密目的(令牌)。
这个函数可以用来生成密码吗?如何实现真正随机且安全的生成?PHP是否有内置函数?希望得到带有示例的详细解释。
版本