如何生成一个随机、唯一、包含字母和数字的字符串?

493

如何使用数字和字母生成一个随机且唯一的字符串用于验证链接?就像在网站上创建账户并通过电子邮件发送带有链接的邮件,您需要点击该链接以验证您的账户一样。

我如何使用PHP生成此类字符串?


1
你所需要的仅是字符串和均匀分布的随机数。 - Artelius
12
嗨,安德鲁,你应该选择“Scott”作为正确答案。 Scott正在使用OpenSSL的加密安全伪随机数生成器(CSPRNG),它将基于您的平台选择最安全的熵源。 - rook
3
阅读此内容的任何人,如果在2015年之后,请务必注意:https://paragonie.com/blog/2015/07/how-safely-generate-random-strings-and-integers-in-php 大多数最佳答案或多或少存在缺陷... - rugk
OpenSSL和uniqid是不安全的。使用类似于Random::alphanumericString($length)或者Random::alphanumericHumanString($length)这样的东西。 - caw
31个回答

-1

我们可以使用这两行代码来生成唯一的字符串,已经测试了大约10000000次迭代。

  $sffledStr= str_shuffle('abscdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_-+');
    $uniqueString = md5(time().$sffledStr);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接