【问题标题】:Fast Cross-Platform C/C++ Hashing Library [closed]快速跨平台 C/C++ 哈希库 [关闭]
【发布时间】:2010-10-22 10:41:01
【问题描述】:

什么是高性能哈希库,它也是 C/C++ 的跨平台。适用于 MD5、SHA1、CRC32 和 Adler32 等算法。

我最初的印象是 Boost 有这些,但显然(还没有)。

目前我发现的最有前途的是 Crypto++,还有其他建议吗? http://www.cryptopp.com/ 这个好像挺全面的。

【问题讨论】:

  • 我会选择cryptopp。

标签: c++ c cross-platform hash


【解决方案1】:

对于通常的加密哈希(MD?、SHA? 等),openssl 是最便携的并且可能是最快的。您提到的哈希都不适用于哈希表等高性能数据结构。目前这些数据结构的推荐哈希函数是:FNV、Jenkins 和 MurmurHash。

【讨论】:

  • 有趣。你能发布链接吗? (是的,我知道,我可以用谷歌搜索这些...)
  • 谢谢,我会看看 openssl。哈希的使用不会用于哈希表,而是用作身份验证和文档验证的哈希(是否被篡改等)
【解决方案2】:

QT seem to implement MD4、MD5 和 SHA1

【讨论】:

  • 为什么要包含整个 Widget-library 只是为了使用它的 MD5 和 SHA-1 实现? 如果您已经在使用 QT,这可能是一个可行的选择,否则就太过分了。
  • Doxygen 使用 QTCore 并且不使用任何 GUI 类。事实证明,QT 有一个很好的平台抽象。见Doxygen FAQ#9。
【解决方案3】:

我肯定会选择 CryptoPP,它也有一个不错的许可证。

【讨论】:

  • 是的,只需在你需要的代码上划一下,你就可以设置好了。
【解决方案4】:

zlib 有一个 crc32 变体的内置实现,并且被广泛移植。 =)

【讨论】:

    【解决方案5】:

    设备跨平台?如果它对你意味着对我意味着什么,那意味着它不是 linux 或者可能是独立于操作系统的。我会并且确实避免了诸如openssl之类的事情。我选择了 libtomcrypt。现在就速度而言?好快,便携,C,随便选两个。

    【讨论】:

    • 那个 libtomcrypt 锁很有趣。
    【解决方案6】:

    也许你可以使用libbeecrypt

    【讨论】:

      【解决方案7】:

      看看plibsys C 库:它支持 MD5、SHA1、SHA-2(224、256、384、512)、SHA-3(224、256、384、512)和 GOST 34.11-94密码学哈希算法。该库本身是可移植且轻量级的。

      【讨论】:

        猜你喜欢
        • 2010-10-22
        • 2021-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-11
        • 1970-01-01
        • 2011-01-14
        相关资源
        最近更新 更多