4

是否有一些现成的算法可以通过 ruby​​ 生成邀请码?一开始我可以想到MD5,但是它的输出对于32来说太长了,所以我希望输出长度小于16。

先感谢您。

4

3 回答 3

3

假设您正在存储代码(否则,有什么意义?)只需创建一个随机字符串,并在保存之前检查它是否存在,如果存在则尝试一个新字符串。不需要主要算法。

于 2011-06-13T12:51:28.410 回答
0

您希望您的邀请码有多“安全”?您可以生成一个 MD5 散列并简单地从散列代码中获取前 16 个字符或最后 16 个字符,或任何 16 个字符的组合(例如散列中的每个其他位置)。对于邀请码,这应该足够了。

于 2011-06-13T12:15:10.710 回答
0
SecureRandom.uuid

这将产生如下输出。

2.1.0 :005 > SecureRandom.uuid
 => "b2a8ed4c-f71f-4c7d-a0fb-a66de58d37cc" 
2.1.0 :006 > 

足够短并且极不可能引起碰撞。

于 2014-06-19T10:17:13.307 回答