【问题标题】:Encryption API for C#2 recommendations?C#2 推荐的加密 API?
【发布时间】:2009-08-17 18:25:48
【问题描述】:

我们需要为项目支持的加密/解密 API 付费 - AES >256?

即使使用内置的东西,我也不希望开发人员编写自己的加密/解密代码。出错的机会很多。

链接到非常有价值的网站。

更新 由于许多人所说的事实-如果您不熟悉加密,并且弄错小事并破坏了它,就很难理解...

我已经看到了答案,并且将从内置函数中获得我们自己的加密/解密 - 但所有团队都需要同行评审。

有关信息 BlowFish.Net 很好,并且比内置加密例程执行得更快,当您开始考虑将数据加密/解密到数据库中时,可能会遇到一些严重的性能问题...

http://www.codinghorror.com/blog/archives/001268.html

【问题讨论】:

  • 如果您不能相信您的开发人员能够处理经过严格测试的内置算法并且有示例代码准确显示如何正确使用它们,那么我会说您有一个严重的问题你的公司。您要么需要开始信任您的开发人员来完成他们的工作,要么如果他们不能得到一些可以做到的。
  • 嗨,格雷格 - 我相信他们,请查看更新,它描述了更多关注领域。

标签: encryption c#-2.0


【解决方案1】:

“即使使用内置的东西”

内置它的原因是人们已经测试过、可靠的算法可用于实现标准,而不是可能没有的黑盒第三方 API。什么是“出错的机会”?

也许您需要切换到 Java,如果您对内置提供程序有疑虑,您可以随时选择使用第三方 JSSE 提供程序。

【讨论】:

  • 我认为“出错的机会”可能在于加密算法的错误使用;如果这个人在那个领域没有能力,这是很有可能的。但同意了;内置当然是方法。
  • 我想这是否是因为“使用盐”之类的事情,以及如何做到这一点。但在这种情况下,问题更像是“我在哪里可以获得 XYZ 的用户帐户 API”。我认为应该推动开发人员提高自己,如果这意味着学习安全基础知识(尽管任何像样的大学课程都会这样做),那就这样吧。
  • 它清楚地标记了一个 C# 问题。因此-1,还有其他同行评审的实现。
【解决方案2】:

Bouncy Castle 是一个备受推崇且开发良好的 .NET 加密库,通常推荐用于此类问题。但是使用System.Security.Cryptography Namespace 有什么问题? - 它非常安全、非常快速并且不需要任何外部库。这是an example 的实现方法。

哦,“使用内置的东西”意味着它不太可能出错。您的开发人员不会编写自己的类,只需使用易于使用且经过严格测试的可用接口。此外,Microsoft 将很好地支持“内置的东西”,所以如果您想升级到 C# 4.0(或将来的 C# 5.0?)您可能根本不需要更改代码。

【讨论】:

  • +1 表示感谢。和合理的答案 - 请注意更新
【解决方案3】:

如果您要使用 3rd 方库,您很可能仍会遇到同样的问题,这基本上归结为不了解加密的陷阱。

如果没有很好的理解,您很可能会在密钥管理方面出错,或者使用错误的初始化向量或密钥。无论您使用的是内置库(这很好)还是第三方库,这些都是您需要了解才能解决的问题。

如果您对此感到足够担心,最好的建议可能是引入某人,或者更好的是 - 培训人们了解加密。

【讨论】:

  • +1 感谢 Paul - 我们将召集团队一起打造一个并从他们的出发。
【解决方案4】:

使用内置的“东西”。但请确保以正确的模式使用它。

【讨论】:

  • +1 谢谢丝绸 - 这是关注的主要领域 - 加密很难 - 如果你不习惯这一点,一小部分可能会咬你
猜你喜欢
  • 2010-11-11
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 2020-11-21
  • 2019-02-07
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多