是否有一些现成的算法可以通过 ruby 生成邀请码?一开始我可以想到MD5,但是它的输出对于32来说太长了,所以我希望输出长度小于16。
先感谢您。
是否有一些现成的算法可以通过 ruby 生成邀请码?一开始我可以想到MD5,但是它的输出对于32来说太长了,所以我希望输出长度小于16。
先感谢您。
假设您正在存储代码(否则,有什么意义?)只需创建一个随机字符串,并在保存之前检查它是否存在,如果存在则尝试一个新字符串。不需要主要算法。
您希望您的邀请码有多“安全”?您可以生成一个 MD5 散列并简单地从散列代码中获取前 16 个字符或最后 16 个字符,或任何 16 个字符的组合(例如散列中的每个其他位置)。对于邀请码,这应该足够了。
SecureRandom.uuid
这将产生如下输出。
2.1.0 :005 > SecureRandom.uuid
=> "b2a8ed4c-f71f-4c7d-a0fb-a66de58d37cc"
2.1.0 :006 >
足够短并且极不可能引起碰撞。