我需要生成一个随机的alpha/数字给用户,让他们进入网站。我对随机数不太了解,我知道有种子问题之类的,但我不知道它们是什么。
所以,我用这个:
选择substrING(md5(concat_ws('-‘’,md5(username_usr),MD5(zip_usr),MD5(id_usr),MD5(Created_usr),-12( users_usr )
这安全吗?我使用concat_ws是因为有时zip是空的,而其他的则不是空的。
是的,我知道这有点短,但是1。他们必须进入最后4的社交,2。这是1次使用,3。没有私人数据显示在应用程序和4。我可以使用captcha,但由于没有私人数据,这可能是过头。
谢谢
发布于 2009-02-12 15:25:17
也许使用通用唯一标识符就足够了?只是为了保持简单?
发布于 2009-02-12 15:29:16
如果你需要一个随机字母数字值,你为什么要使用这么多变量?下面这样的内容应该足够完美:
md5(rand())
--Flavor: MySql发布于 2009-02-12 15:44:41
这将有助于了解“随机”字符串的用途。这不是随机的--它是可重复的--而且相当容易重复。您不会以一种很容易可逆的方式公开任何敏感信息,但我猜您确实在寻找一种生成UUID (univeraslly Univeraslly Univeraslly)的方法。并非巧合,最近的MySQL版本有一个名为UUID的函数。
uuid
这也许能更好地解决你想解决的问题。如果你真的想要一个随机数(顺便说一句,它肯定会有碰撞),不要担心播种。如果你不指定一个种子,它就会以一种比固定的种子更好的方式播种。然后,将该随机数(或一系列随机数)映射到一个字符(可能通过将整数转换为char),并重复此操作,直到有足够长的字符字符串为止。但值得重申的是,随机数并不是唯一的保证数.
https://stackoverflow.com/questions/541771
复制相似问题