【问题标题】:PHP Absolutely unique, random stringPHP 绝对唯一的随机字符串
【发布时间】:2012-06-25 05:23:15
【问题描述】:

在我们这个时代是否有任何php函数可以生成绝对唯一的随机字符串? 或者换个说法,在我们这个时代如何在 php 中制作绝对唯一和随机的字符串? 组合几个随机函数就足够了吗?

【问题讨论】:

  • True random number generation 的可能重复项
  • 这与 PHP 没有太大关系,而是任何软件程序是否可以生成真正随机字符串的问题。它不能(因为所有随机生成器都基于某种算法,因此是确定性的)。因此,随机生成器的所有软件实现都称为伪随机(数字)生成器(PRNG)。查看@MichaelPetrotta 分享的链接了解更多信息。
  • Joris,不过有加密安全的 PRNG。您可以安全地使用它们。
  • 顺便说一句,这个问题是不恰当的,因为没有指定字符串是否应该具有固定长度,或者最大和/或最小长度。还有,是否允许所有字节和字节序列。

标签: php function random


【解决方案1】:

只是为了挑剔......如果它必须是独一无二的,那么它并不是真正的“随机”。随机性包括重复的可能性,因为生成随机状态不依赖(或引用)先前的状态。

您只想创建一个GUID 吗? PHP 有几种生成随机 ID 的方法:

其他人似乎也有found ways to do this

【讨论】:

  • 关于您的最后一个链接:我会谨慎信任调用 MD5 加密的资源......选项 4 非常糟糕,既不遵循版本 4 也不遵循版本 5 GUID。事实上,它只是一个看起来像 GUID 的 MD5 哈希。
  • @Joey:绝对是一个好点。它是在 Google 上找到的,似乎是进一步研究的不错起点。
  • @All:作为密码的随机字符串生成器有多好? $str_password = str_shuffle('abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@#%$*'); return substr($str_password, 0 ,$int_password_length);
  • 浏览了上面所有的原则/答案/帖子,我想我需要重新考虑我的随机字符串生成器的实现,这对我来说似乎不再随机了 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-21
  • 2010-10-18
  • 2014-10-20
  • 1970-01-01
相关资源
最近更新 更多