C#看起来有4种不同的对称加密算法:RijndaelManaged,DESCryptoServiceProvider,RC2CryptoServiceProvider和TripleDESCryptoServiceProvider.
我正在寻找他们之间的更多信息.主要是它们之间的差异.MSDN没有太多帮助,或者我只是累了.;)我确信每个人之间都有利弊,就像有多种做事方式的事情一样.
谢谢你的任何启示.
托尼
这个排名(2015年)最强的算法出现在最上面:
Rijndael(通常称为AES)
三重DES
DES
RC2
使用AES.
更多细节:
DES是七十年代以来的旧"数据加密标准".它的密钥大小太短而不能保证适当的安全性(56个有效位;这可能是暴力强制的,正如十多年前所证明的那样).此外,DES使用64位块,当使用相同的密钥加密几千兆字节的数据时,这会产生一些潜在的问题(现在千兆字节不是那么大).
3DES是通过级联三个DES实例(具有不同的键)来重用DES实现的技巧.3DES被认为是安全的至少" 2 112 "安全性(这是相当多的,并且在"不能用今天的技术破坏"的范围内相当远).但它很慢,特别是在软件中(DES专为高效的硬件实现而设计,但它在软件方面很糟糕; 3DES吸收的数量是其三倍).
AES是DES的继承者,是美国联邦组织的标准对称加密算法(并且几乎所有人都是标准的).AES接受128,192或256位的密钥(128位已经非常牢不可破),使用128位块(因此没有问题),并且在软件和硬件方面都很有效.它是在几年内通过涉及数百名密码学家的公开竞争选出的.基本上,你不能比那更好.
因此,如有疑问,请使用AES.
请注意,分组密码是一个加密"块"(使用AES的128位数据块)的框.当加密可能长于128位的"消息"时,必须将消息拆分成块,并且实际进行拆分的方式称为操作模式或"链接".天真模式(简单拆分)称为ECB并存在问题.正确使用分组密码并不容易,而且比在AES或3DES之间进行选择更为重要.
http://en.wikipedia.org/wiki/EFF_DES_cracker
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
简答:使用Rijndael.
各种选择是什么:
RC2是一种在80年代后期建造的用于出口的弱破碎密码,因为当时美国公司被限制出口"强"加密.它的密钥长度为40位,这使得暴力强加于今天的硬件上(毕竟,20年之后).
它的名字代表Rivest Cipher No. 2,它的创始人Ron Rivest(世界着名的crpytographer,RSA中的'R').
DES是数据加密标准,被称为强crpytography.但是,密钥长度为56位,现在处于强力解密范围内.
3DES正在运行DES三次.实际上,只运行DES两次并不会让它变得更强,但第三次.它实际上是116位加密(使用196位密钥).
3DES是今天标准的非常好的强大加密.
因此,RC2,DES和3DES位于密码套件中,以提供与使用这些密码的业务系统的兼容性.
然而,Rijndael是现代密码的首选.它是DES的官方替代品,称为高级加密标准(AES).
它有一个范围keysizes的,但它是重要的,以使用128位.出于兼容性原因,仅使用其他密钥长度(包括最长的256位).