Я не могу использовать boost: hash, потому что я должен придерживаться C и не могу использовать C ++.
Но мне нужно хешировать большое количество (от 10К до 100К) строк токенов (длиной от 5 до 40 байтов), чтобы поиск в них был самым быстрым.
MD5, SHA1 или любая длинная хеш-функция кажется слишком тяжелой для простой задачи, я не занимаюсь криптографией. Плюс к этому есть стоимость хранения и вычислений.
Поэтому мой вопрос:
Какой может быть самый простой алгоритм хеширования, который обеспечит предотвращение коллизий в большинстве практических случаев.
Сколько бит использовать для хеш-значения? Я разрабатываю для 32-битных систем. Использует ли хеш-алгоритм в Perl / Python 32-битные хеши? Или надо на 64 прыгать?
Что касается реализации хэш-таблиц в распространенных языках сценариев: проверяет ли реализация на наличие коллизий, или я могу вообще избежать этой части?