我正在生成一个唯一且随机的字母数字字符串段来表示将由用户生成的某些链接。为此,我使用“uuid”数字来确保它的唯一性和随机性,但是,根据我的要求,字符串的长度不应超过 5 个字符。所以我放弃了这个想法。
然后我决定使用 ruby 的随机函数和当前时间戳生成这样一个字符串。我的随机字符串的代码是这样的:-
temp=DateTime.now
temp=temp + rand(DateTime.now.to_i)
temp= hash.abs.to_s(36)
我所做的是将当前日期时间存储在一个临时变量中,然后生成一个随机数,将当前日期时间作为参数传递。然后在第二行中实际将当前日期时间和随机数加在一起,形成一个唯一且随机的字符串。
很快我发现,当我在两台不同的机器上测试我的应用程序并同时发送请求时,它在 100 多次试验后生成了相同的字符串(虽然很少见)。
现在我在想,在将 to_s(36) 传递给 temp 变量之前,我应该再添加一个参数,例如 mac 地址或客户端 IP 地址。但无法弄清楚如何做到这一点,即使那样它是否会是独一无二的,也不是......
谢谢....