【发布时间】:2011-08-18 15:54:15
【问题描述】:
我正在开发一个应用程序,它允许用户共享一个简单调查的链接。为此,我想为每个调查生成唯一的 URL,因此具有如下 URL:
http://myapp.com/aBcDe1F
我希望 URL 的字母数字标识符部分是伪随机的并且有点短(6-8 个字符)。现在,生成它很容易,但我如何确保它们是唯一的但也是伪随机的?我是否必须生成它,然后通过查询数据库检查以确保它之前没有生成,如果没有,重新生成另一个字符串并再次尝试相同的过程?
我知道以这种方式混淆 URL 并不能真正确保安全,但此应用程序排除了基于密码的身份验证,因此我尝试使用伪随机字符串。
【问题讨论】:
-
重复创建直到找到唯一的键对我来说听起来不错。
-
如果你只有 6 个 -8 个字符,你必须把它保存在某个地方(数据库似乎是最好的解决方案)。请记住,地址中的大小写字母不受欢迎;)根据项目的规模和重要性 - 您还可以尝试生成一些“非常可能唯一”的代码,例如加入当前时间戳 + 用户 IP 或随机 chapcha,并屏蔽结果,例如md5() 哈希(使用 md5,但长度 > 8 个字母数字)。
标签: random alphanumeric