推荐的.NET加密库

Jer*_*eir 19 .net c# encryption

阅读(另一个)后,杰夫·阿特伍德或多或少得出的结论是我们凡人开发商不应过于介入与加密,我在想,我应该使用什么库.我发现只有两个看似合法的库是entlib和Bouncy Castle,但它们对我来说似乎不比.NET加密API更具抽象性.

我想我想知道的是,是否存在一个简单,广泛信任,开放且记录良好的"jQuery加密库".

Cra*_*gTP 22

编辑:以下是来自https://github.com/quozd/awesome-dotnet/blob/master/README.md#cryptography的流行加密库的完整列表:

  • BouncyCastle - 与.Net System.Security.Cryptography一起,CLR上加密算法的参考实现.
  • HashLib - HashLib是几乎所有哈希算法的集合,它几乎支持所有东西并且非常易于使用
  • libsodium-net - 用于.NET的libsodium - 一个安全的加密库
  • Pkcs11Interop - 用于非托管PKCS#11库的托管.NET包装器,提供对加密硬件的访问
  • StreamCryptor - 使用libsodium和protobuf进行流加密和解密
  • SecurityDriven.Inferno - .NET加密库.专业审计.

原始答案如下.


Bouncy Castle库确实是一个备受推崇的,成熟的加密库,但使用.NET框架中内置的许多出色的加密函数有什么问题?

System.Security.Cryptography命名空间

根据我的经验,这些实现是坚如磐石的,提供了许多选项(例如:你通常有一个Crypto API,CNG和每个算法的托管实现可供选择),你不会"弄错" ",因为你只是使用了实现.如果您有点担心可能会错误地使用它们,则可以始终遵循MSDN自己的示例代码.


Jon*_*ant 8

你完全误解了格言"不要自己实现加密程序".这意味着:不要滚动自己的RSA/DSA /任何加密算法.这并不意味着你不应该使用知道自己在做什么的人写的.事实上,如果有的话,在你和可信算法之间添加更多层会伤害你,而不是反过来.

  • 我并不反对,我只是想弄清楚是否有一些我错过的很棒的库,因为Jeff讨论了试图避免使用.NET的API支持"经过验证的,经过领域专家测试的代码集,成千上万的开发人员已经依赖这些代码".我感觉没有(除了我提到的两个). (3认同)

Jon*_*way 6

Bouncy Castle似乎受到广泛尊重