Может ли кто-нибудь привести пример 2 строк, состоящих только из буквенных символов, которые будут выдавать одинаковое значение хеш-функции с ELFHash?
Мне нужно это, чтобы проверить мои коды. Но это не так просто производить. И, к моему удивлению, в Интернете есть много примеров кодов различных хеш-функций, но ни один из них не содержит примеров строк, встречающихся в цепочке.
Ниже приведен хэш-файл ELF, если вам это нужно.
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);
}