private static void test4(string fileName)
{
try
{
/* 注意此处不可以打开一个file之后 计算完md5之后接着计算sha1
using (FileStream file = new FileStream(fileName, FileMode.Open))
{
//MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] retVal = MD5.Create().ComputeHash(file);
byte[] sha1Byte = SHA1.Create().ComputeHash(file);
}
以上代码计算的sha1 是错误的!!!!!!!!
每次计算完需要关闭filestream 重新打开计算才是正确的
*/
//string fileName = @"E:\zhongxue.doc";
//FileStream file = new FileStream(fileName, FileMode.Open);
using (FileStream file = new FileStream(fileName, FileMode.Open))
{
//MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] retVal = MD5.Create().ComputeHash(file);
Console.WriteLine(fileName + "md5:".PadRight(10).PadLeft(12) + BitConverter.ToString(retVal));
}
using (FileStream file = new FileStream(fileName, FileMode.Open))
{
byte[] sha1Byte = SHA1.Create().ComputeHash(file);
Console.WriteLine(fileName + "sha1:".PadRight(10).PadLeft(12) + BitConverter.ToString(sha1Byte));
}
using (FileStream file = new FileStream(fileName, FileMode.Open))
{
byte[] sha256Val = SHA256.Create().ComputeHash(file);
Console.WriteLine(fileName + "sha256:".PadRight(10).PadLeft(12) + BitConverter.ToString(sha256Val));
}
}
catch (Exception ex)
{
Console.WriteLine("GetMD5HashFromFile() fail, error:" + ex.Message);
}
}