C/C++ 中最好的加密库是啥? [关闭]

Posted

技术标签:

【中文标题】C/C++ 中最好的加密库是啥? [关闭]【英文标题】:What is the best encryption library in C/C++? [closed]C/C++ 中最好的加密库是什么? [关闭] 【发布时间】:2010-09-15 21:40:45 【问题描述】:

C/C++ 中最好的加密库是什么?

熵 质量 易于使用 可读性 便携性 性能

你最喜欢什么,为什么喜欢它?

【问题讨论】:

我认为对于这样的问题,您应该指定您的项目是使用 C 还是 C++。从技术上讲,您显然可以在 C++ 项目中使用 C 库,但我认为这是最后的手段。 真的很奇怪没有人提到真正好的Botan库(botan.randombit.net)。 【参考方案1】:

我们已成功使用OpenSSL。便携、符合标准且易于使用。

【讨论】:

鉴于当前有关 OpenSSL 库的开发状态和组织的披露,我认为应该暂时避免使用该库。另一方面,现在有很多组织参与改进它,所以我预计它在不久的将来会相当不错。 @JoshuaKolden 你能详细说明一下吗?为什么你认为应该避免它,你认为过去一年有什么变化吗? @rr 在当时(一年前),人们发现 OpenSSL 并没有像人们想象的那样得到很好的审查,可能仅仅是因为它是开源的。现在,随着已经发现的各种安全问题,它似乎受到了更加集中的审查,因此已经从审查中受益。正因为如此,我怀疑 OpenSSL 现在相当不错,而且越来越好。【参考方案2】:

我过去使用过 CryptoPP (http://www.cryptopp.com/),虽然它的 API 风格和编程范式需要一点时间来适应,但我最终还是喜欢它。它提供了广泛的对称和非对称算法,具有很大的灵活性。文档一般,API 文档在那里,但几乎没有“高级”概述和简单的示例代码。我最终将网上的一些代码拼凑在一起。很容易集成到我的项目中(静态链接)。我开始使用 MSVC - 2003 时使用它,现在切换到 2008。它可以跨多个平台移植(查看网站)。我一直用默认的RNG,不知道是哪个。

【讨论】:

【参考方案3】:

我将不得不选择LibTomCrypt。对于 OpenSSL,它经常被忽视,但 TomCrypt 就是如此轻量级和简单。至于质量,TomCrypt 被广泛接受为***加密。此外,它的许可证是公共领域的,避免了在编写商业软件时 BSD 许可证给您带来的文档归属麻烦。

【讨论】:

LibTomCrypt 目前的发展状况如何?这是我在***.com/questions/2264060/… 的问题 @bumhacks:我会远离这个图书馆——它不再维护,作者似乎已经从地球上掉了下来。 注:已移至 GitHub - github.com/libtom/libtomcrypt 快速浏览指南,这看起来很容易使用,因为他使用返回密钥、加密、解密的简单函数......【参考方案4】:

Crypto++好像口碑很好

*** - https://en.wikipedia.org/wiki/Crypto%2B%2B

GitHub - https://github.com/weidai11/cryptopp

【讨论】:

我可以免费将这个库用于商业用途吗? @george - 它在 Boost 许可证下:en.wikipedia.org/wiki/Crypto%2B%2B :感谢您的回复。我已经看到了 Boost 许可证,但无法正确理解。假设我有一个商业应用程序在我的 PC 中构建了 crypto++ 之后使用了 crypto++ api。在这样的案例,我想添加任何许可证或发布我的代码,因为我使用了crypto++? @george - IANAL .. 但您似乎只需要提供底层库(或链接),不需要您编写的任何 使用我>他们。但是您应该与 Boost 或知识产权律师核实(Boost 许可证 - boost.org/users/license.html【参考方案5】:

我最喜欢的是 GNU 的库:

libgcrypt

它的性能很好,它在任何地方都被使用,所以它经过了很好的测试。

【讨论】:

如果有人想知道,libgcrypt 是 LGPL 许可的。 我无法从他们的文档中理解这与 GnuPG 或 GnuPGME 有何不同。 “独立模块”的真正含义是什么?【参考方案6】:

C++ 版本尚未发布,但 goolge KeyCzar http://code.google.com/p/keyczar/ 可能值得一看。无论您对他们的业务有什么看法,他们确实有很多聪明的程序员为他们工作。

【讨论】:

C++ 版本现已发布。 谢谢,这是一个好的开始,因为它有我可以插入 android 的 JAVA 库。 看起来 Javax 加密(和 C++)是基于 openSSL 的。【参考方案7】:

GPGme。使用简单,兼容OpenPGP format

【讨论】:

以上是关于C/C++ 中最好的加密库是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

可以与 Eclipse 颠覆插件一起使用的最好的、免费的颠覆控制存储库是啥? [关闭]

C#,目前最好的字符串加密和解密的算法是啥?

对于 C/C++ 程序及其插件 DLL,最好的免费内存泄漏检测器是啥? [关闭]

ActionScript的椭圆曲线加密

mysql 最新的密码哈希算法/数据加密是啥?

最好的 Java 提要阅读器库是啥? [复制]