¿Existe algún algoritmo ya hecho para generar código de invitación por ruby?
-
27-10-2019 - |
Pregunta
¿Existe algún algoritmo ya hecho para generar código de invitación por ruby?Puedo pensar al principio MD5, pero su salida es demasiado larga para 32, así que quiero que la longitud de salida sea menor que 16.
Gracias de antemano.
Solución
Suponiendo que está almacenando el código (de lo contrario, ¿cuál es el punto?), simplemente haga una cadena aleatoria y verifique si existe antes de guardar, e intente una nueva cadena si existe.No se necesita un algoritmo importante.
Otros consejos
¿Qué tan "seguro" desea su código de invitación?Puede generar un hash MD5 y simplemente tomar los primeros o últimos 16 caracteres, o cualquier combinación de 16 caracteres del código hash (por ejemplo, cualquier otra posición en el hash).Eso debería ser lo suficientemente bueno para un código de invitación.
SecureRandom.uuid
Esto producirá un resultado como el siguiente.
2.1.0 :005 > SecureRandom.uuid
=> "b2a8ed4c-f71f-4c7d-a0fb-a66de58d37cc"
2.1.0 :006 >
Lo suficientemente corto y extremadamente improbable para causar una colisión.