Avatar ·

如何在PHP中生成随机的唯一字母数字字符串?

大家好!我是一名PHP初学者开发者,遇到了一个任务:需要为会话ID、优惠券以及唯一链接创建随机字符串。我尝试通过`rand()`和字符串拼接来实现,但结果出现了重复或不安全的字符串。 以下是我写的代码: ```php function generateRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, strlen($characters) - 1)]; } return $randomString; } ``` 问题: 1. 频繁调用时(例如在循环中),有时会生成相同的字符串。 2. 我听说`rand()`不是加密安全的,并且可预测。 3. 如果需要一次性生成1000个字符串,我不知道如何保证唯一性。 请告诉我如何在PHP中正确生成随机的字母数字字符串?需要考虑性能、安全性和避免冲突。