【问题标题】:I'm having trouble creating a random string我在创建随机字符串时遇到问题
【发布时间】:2011-12-15 08:17:23
【问题描述】:

我有一个小脚本,用于生成 25 个字符的随机字符串。它在大约 70% 的时间里工作,而其他时候它创建的字符串只有 10 个。

$unique = substr(md5(microtime()),rand(0,26),25);

我的目标是生成一个随机的(小写)字母和数字字符串,而不必创建函数

【问题讨论】:

  • 只有 10 是指只有 10 个字符还是别的什么?

标签: php random md5


【解决方案1】:

这是因为您使用 rand(0, 26) 将其切割成随机长度。

试试这个:

$unique = substr(md5(microtime()), 0, 25);

【讨论】:

    【解决方案2】:

    不要使用 md5(microtime())。你可能认为它比 md5(rand()) 更安全,但事实并非如此。

    通过大量尝试和同步方法(如您网站上的时钟),您可以将 microtime() 的结果预测到毫秒。

    使用 md5(rand())

    或者如果您希望它更安全,请使用 md5(microtime().rand())

    【讨论】:

      猜你喜欢
      • 2013-05-31
      • 2011-06-05
      • 2020-09-21
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 2017-04-11
      • 2020-08-29
      相关资源
      最近更新 更多