C#2建议的加密API?

时间:2009-08-14 11:37:16

标签: encryption c#-2.0

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

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

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

UPDATE 由于许多人已经说过这样的事实 - 如果你不熟悉加密技术并且弄错了小东西并且它被破坏了,那就很难理解......

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

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

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

4 个答案:

答案 0 :(得分:4)

“即使使用内置的东西”

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

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

答案 1 :(得分:3)

Bouncy Castle是一个备受推崇且发展良好的.NET加密库,通常建议用于解决这些问题。但是使用System.Security.Cryptography Namespace有什么问题? - 它非常安全,速度非常快,不需要任何外部库。这是an example如何实现它。

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

答案 2 :(得分:1)

如果你使用第三方库,你很可能会遇到同样的问题,这基本上归结为不理解加密的缺陷。

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

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

答案 3 :(得分:0)

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