您的位置:首页 > 其它

在.net中Rijndael和TripleDES的比较

2011-07-14 09:37 253 查看
2008-9-15ganton
今天,我对使用Rijndael和TripleDES那一个算法有些疑惑,据我所知Rijndael比TripleDES要快些,但是在.net开发过程中有些信息让我知道在2.0中TripleDES却比Rijndael快,
为了证明其正确性,我将做一个测试。测试的结果是他们的效率基本一样。

我测试的电脑,内存2G,cpu酷睿双核E84003Ghz,.net3.5。下面是测试代码:
usingSystem;
usingSystem.IO;
usingSystem.Security.Cryptography;
usingSystem.Diagnostics;
namespaceAESvsTripleDES
{
classProgram
{
staticvoidMain(string[]args)
{
doublerijndaelResult;
doubletripleDesResult;
using(SymmetricAlgorithmalgorithm=Rijndael.Create())
{
rijndaelResult=RunTest(algorithm);
}
using(SymmetricAlgorithmalgorithm=TripleDES.Create())
{
tripleDesResult=RunTest(algorithm);
}
Console.WriteLine("RijndaelResult="+rijndaelResult.ToString());
Console.WriteLine("TripleDESResult="+tripleDesResult.ToString());
Console.Read();
}
privatestaticdoubleRunTest(SymmetricAlgorithmalgorithm)
{
using(MemoryStreamms=newMemoryStream())
{
using(ICryptoTransformtransform=algorithm.CreateEncryptor())
{
using(CryptoStreamcs=newCryptoStream(ms,transform,CryptoStreamMode.Write))
{
byte[]data=newbyte[8192];
Randomr=newRandom(255);
for(inti=0;i<data.Length;i++)
{
data[i]=(byte)r.Next();
}
Stopwatchsw=newStopwatch();
sw.Start();
for(inti=0;i<10000000;i+=data.Length)
{
cs.Write(data,0,data.Length);
}
sw.Stop();
returnsw.ElapsedMilliseconds;
}
}
}
}
}
}
原文地址:http://devblog.antongochev.net/2008/09/15/rijndael-vs-tripledes-in-net-performance/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: