Avatar ·

在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是否有内置函数?希望得到带有示例的详细解释。 版本