【发布时间】:2011-11-20 18:48:22
【问题描述】:
我正在尝试编写一个 PHP 函数,该函数将生成“假定”随机字符串,无论运行多少次,这些字符串都必须是唯一的。好吧,它可以运行多次以生成,但最好不要多次。
例如,当您将图像上传到 imgur 时,它会生成一个随机的 5 字母 [a-zA-Z] 字符串。如果我想复制这个(在 MySQL 数据库中存储带有唯一键的字符串),而不必重复选择并确保键不存在,有什么办法吗? 同时,随机的重要性确实存在,所以我宁愿不使用 1,2,3 (aaaaa,aaaab,aaaac),因为这将完全消除对随机性的需求。
我知道有 52^5 种不同的可能性,但仅出于教育目的(以及未来的算法编写),有没有一种有效的方法来生成这些“唯一”“随机”字符串?
[编辑] 我知道唯一+随机是(基本上)不可能的。但是有什么方法可以生成独特的、非显而易见的字符串吗?谢谢丹麦人!
【问题讨论】:
-
你希望字符串有多长?如果可以处理 40 个字符串,则可以使用 SHA1,从冲突的角度来看,它是一种安全算法。另外,字符串中可以包含哪些字符?也只有字母或数字。
标签: php string random unique generator