¿Cuál es un buen consejo para eliminar las colisiones cuando se hacen hash de cosas? Necesito un identificador único para todos mis usuarios, pero quiero que sean privados. Estoy pensando en usar ODIN-1 ( enlace ), un sha1 de diferentes identificadores específicos del dispositivo; MAC para iOS, AndroidID para Android y DeviceUniqueId para Windows Phone.
Sin embargo, ¿cuál es el riesgo de colisión en esos hashes? ¿Ayudaría usar otra función de hash? Otra entrada? ¿Prefijo de plataforma específica? Realmente necesito que cada hash legítimo sea único.
Ignoremos a los usuarios que falsifican sus hashes por ahora, ya que realmente no puedo hacer mucho al respecto. La seguridad del lado del cliente es lo que es.