Функции хеширования STL
Доступно ли в STL какие-либо функции Hash, которые публично раскрываются?
Я знаю, что существуют нестандартные реализации, которые используют хэш-значения (такие как boost:: hash_map), а MSVC8 реализует версию hash_map/hash_set/etc.
Но существуют ли Хэш-функции, которые определены в С++ 98 STL?
Если нет, то каковы лучшие источники не-С++ 98 надежной хэш-функции?
Порядок предпочтительных источников (от наиболее приемлемого до наименьшего): Boost, С++ 0x стандартный STL, TR1, другая сторонняя сторона.
Ответы
Ответ 1
:
И все они предназначены для хэшированных ассоциативных контейнеров, а не для криптографии.
Ответ 2
Я думаю, вы ищете хеш-функции для хэш-таблиц, а не для криптографии, правильно?
В этом случае, как насчет boost:: hash?
В документации говорится, что он совместим с хешем TR1, который должен стать частью предстоящего стандарта С++ 0x. Это означает, что он, вероятно, уже найден в довольно многих компиляторах.
Для криптографических хэшей в Boost, похоже, есть реализация SHA-1, но путь, если вам нужен, тяжелый - использовать специальную библиотеку, такую как Crypto ++.
Ответ 3
Выбор функции Хэша в идеале зависит от вашего использования результатов. Я подозреваю, что это частично может быть связано с идеей "один размер не подходит всем".