Estoy intentando crear cadenas cortas que no colisionen con cadenas más largas en Ruby. ¿Cuál es la mejor manera de hacer esto? ¿Base64 codifica un hash MD5?¿Cuál es la mejor forma de generar una cadena de hash corta a partir de una cadena más larga?
Este es el caso de uso:
loop do
key = short_hash("#{user_id}-#{timestamp}")
break if $redis.setnx(key, "0")
end
no quiero clave para ser demasiado largo.
Hay un montón de preguntas en este sitio sobre temas similares. Intenta buscar temas hash. Aquí hay uno: http://stackoverflow.com/questions/4066601/developing-a-url-shortener/4066615#4066615 –
@Sugerman: Esa pregunta está en Python. –
Lo que puede deducir de la respuesta en ese (y otros) hilos si los lee es que la "mejor manera" de hacer esto es independiente del idioma. Primero elija su algoritmo hash y luego preocúpese por la implementación específica del idioma. –