J'utilise Elf Hash pour écrire une version spécialement modifiée de la carte de hachage. Vouloir produire des collisions

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

  •  29-10-2019
  •  | 
  •  

Question

Quelqu'un peut-il donner un exemple de 2 chaînes, composé de caractères alphabétiques uniquement, qui produira la même valeur de hachage avec Elfhash?

J'en ai besoin pour tester mes codes. Mais cela ne semble pas facile à produire. Et à ma grande surprise, il y a beaucoup d'exemples de codes de diverses fonctions de hachage sur Internet, mais aucun d'entre eux ne fournit des exemples de chaînes colladées.

Vous trouverez ci-dessous le hachage Elf, au cas où vous en auriez besoin.

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);
}

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top