Avatar ·

在PHP中生成随机字符串:如何正确且安全地操作?

大家好!我是一名初学PHP开发者,正在编写我的第一个带用户注册功能的网站。我需要生成用于邮箱确认和临时密码的随机token。我在网上找到了一个简单的方法,但不确定它是否正确。 以下是我目前使用的代码: ```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; } echo generateRandomString(32); // 例如:"a3F8kL9mN2..." ``` 我注意到的问题: 1. 函数`rand()`——我读到它不是加密安全的。 2. 无法保证字符串的唯一性。 3. 不清楚如何使字符串仅包含字母或仅包含数字。 请告诉我如何在PHP中正确生成随机字符串?需要示例。