c#中MD5算法(转帖)

先引用命名空间: 
using System.Security.Cryptography; 
using System.Text; 
然后:
MD5CryptoServiceProvider md5=new MD5CryptoServiceProvider();
string source="HelloWorld";
byte[] message;
message=Encoding.Default.GetBytes(source);
//方法1
//  使用ComputeHash方法,适合用于计算简单的字符串的md5值时
md5.ComputeHash(message);
Console.WriteLine(Convert.ToBase64String(md5.Hash));

//方法2
//  使用TransformFinalBlock方法,适合用于原始数据不多时
md5.Initialize();
md5.TransformFinalBlock(message,0,message.Length);
Console.WriteLine(Convert.ToBase64String(md5.Hash));

//方法3
//  此方法等同于方法2
md5.Initialize();
md5.TransformBlock(message,0,message.Length,
     message,0); //note: output bytes must equal input bytes
md5.TransformFinalBlock(message,0,0);
Console.WriteLine(Convert.ToBase64String(md5.Hash));

//方法4
//  将原始消息分两次编码,得出的结果跟上面的一样,适合用于计算大量原始数据时,例如计算一个文件的md5值
md5.Initialize();
message=Encoding.Default.GetBytes("Hello");
md5.TransformBlock(message,0,message.Length,
     message,0);
message=Encoding.Default.GetBytes("World");
md5.TransformFinalBlock(message,0,message.Length);
Console.WriteLine(Convert.ToBase64String(md5.Hash));

posted on 2009-03-19 13:50  ATAK  阅读(1477)  评论(0编辑  收藏  举报

导航