HashAlgorithm 文件比较

在用C#对文件进行copy操作的时候,为了保险起见,我们应比较一下copy后的内容是否与原内容完全一致。如果是比较文件所有内容,那就有点out啦。现在我们就用签名方式来检查一下吧。
一、HashAlgorithm类
HashAlgorithm类提供了两种Hash算法,可以用来验证文件是否被修改过。算法包括SHA1,SHA256,SHA384,SHA512和MD5。
二、给某个文件用MD5方式签名

public static string GetSignature(string strFileName)
{
try
{
if (!File.Exists(strFileName))
return string.Empty;
//声明HashAlgorithm对象,MD5可以改为SHA1,SHA512等
using(HashAlgorithm hash = HashAlgorithm.Create("MD5"))
{
//开启档案
using (Stream ms = new FileStream(strFileName, FileMode.Open))
{
//产生加密的密码
byte[] myHash = hash.ComputeHash(ms);
//返回字符串
return BitConverter.ToString(myHash);
}
}
}
catch (System.Exception ex)
{
//WriteSystemMessage(ex.Message);
}
return string.Empty;
}

三、对字符串加密

HashAlgorithm ha = HashAlgorithm.Create("MD5");
byte[] byData = Encoding.Default.GetBytes(strTest);
byte[] myHash = ha.ComputeHash(byData);
return BitConverter.ToString(myHash);