2009-04-28 2 views
10

Что такое высокопроизводительная хэш-библиотека, которая также является перекрестной платформой для C/C++. Для таких алгоритмов, как MD5, SHA1, CRC32 и Adler32.Fast Cross-Platform C/C++ Hashing Library

Первоначально у меня создалось впечатление, что у Boost были эти, но, по-видимому, (пока).

Самый многообещающий, который я нашел до сих пор, это Crypto ++, любые другие предложения? http://www.cryptopp.com/ Это кажется довольно полным.

+0

Я бы выбрал криптопп. – Skurmedel

ответ

7

Для обычных крипто хешей (MD ?, SHA? И т. Д.), openssl является самым портативным и, вероятно, самым быстрым. Ни один из хэшей, которые вы упомянули, хорош для высокопроизводительных структур данных, таких как хеш-таблицы. Рекомендуемые хеш-функции для этих структур данных в наши дни: FNV, Jenkins и MurmurHash.

+1

интересный. можете ли вы разместить ссылки? (да, я знаю, я могу это сделать ...) –

+0

Спасибо, я посмотрю на openssl. Использование хэшей не будет для хэш-таблиц, но используется как хэши для проверки подлинности и проверки документов (было ли это изменено и т. Д.) –

4

QT seem to implement MD4, MD5 и SHA1

+4

Зачем включать целую библиотеку виджетов, чтобы использовать ее реализации MD5 и SHA-1? * Если * вы уже используете QT, это может быть вариант optionibel, иначе он будет излишним. –

+1

Doxygen использует QTCore и ни один из классов GUI. Оказывается, QT имеет довольно хорошую абстракцию платформы. См. [Doxygen FAQ] (http://www.stack.nl/~dimitri/doxygen/faq.html) # 9. –

1

zlib имеет встроенный в реализации варианта crc32 и широко портирована. =)

2

Я бы обязательно пошел с CryptoPP, у него есть хорошая лицензия, чтобы пойти с ним.

+0

Да, просто введите код, который вам нужен, и вы будете установлены. – Skurmedel

1

Устройство перекрестная платформа? Если это означает для вас, что это значит для меня, это означает, что Linux или, возможно, не зависит от операционной системы. Я бы и избегал таких вещей, как openssl. Я пошел с libtomcrypt. Теперь, насколько скорость идет? Хорошо быстрая, портативная, C, выбрала любые два.

+0

Что libtomcrypt блокирует интерес. – Johan

0

Взгляните на библиотеку plibsys C: она поддерживает MD5, SHA1, SHA-2 (224, 256, 384, 512), SHA-3 (224, 256, 384, 512) и шифрование по ГОСТ 34.11-94 хэш-алгоритмов. Библиотека портативная и легкая.