Estoy usando ELF hash para escribir una versión especialmente ajustada del mapa hash. Queriendo producir colisiones

StackOverflow https://stackoverflow.com/questions/5920276

  •  29-10-2019
  •  | 
  •  

Pregunta

¿Alguien puede dar un ejemplo de 2 cadenas, que consiste solo en caracteres alfabéticos, que producirán el mismo valor hash con Elfhash?

Necesito estos para probar mis códigos. Pero no parece fácil de producir. Y para mi sorpresa, hay muchos códigos de ejemplo de diversas funciones hash en Internet, pero ninguno de ellos proporciona ejemplos de cuerdas chocadas.

A continuación se muestra el hash elfo, en caso de que lo necesite.

unsigned int ELFHash(const std::string& str)
{
   unsigned int hash = 0;
   unsigned int x    = 0;

   for(std::size_t i = 0; i < str.length(); i++)
   {
      hash = (hash << 4) + str[i];
      if((x = hash & 0xF0000000L) != 0)
      {
         hash ^= (x >> 24);
         hash &= ~x;
      }
   }

   return (hash & 0x7FFFFFFF);
}

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top