@
Athrob 整理了一下, 好像是写法的问题:
~~~
using System;
using System.Collections.Generic;
using
System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
String path = "C:\\Users\\ABC\\Downloads\\DiskGenius.exe";
var md5 = MD5.Create();
var openFile = File.OpenRead(path);
var hash = md5.ComputeHash(openFile);
Console.WriteLine("计算正确:");
Console.WriteLine(BitConverter.ToString(hash).Replace("-", String.Empty).ToLower());
Console.WriteLine();
Console.WriteLine("独特的:");
var stream = new BufferedStream(openFile);
var hash2 = md5.ComputeHash(stream);
Console.WriteLine(BitConverter.ToString(hash2).Replace("-", String.Empty).ToLower());
Console.WriteLine();
Console.WriteLine("另外一种用法(计算正确):");
FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
var bufferedStream3 = new BufferedStream(fileStream, 1024 * 4);
var hash3 = md5.ComputeHash(bufferedStream3);
Console.WriteLine(BitConverter.ToString(hash3).Replace("-", String.Empty).ToLower());
Console.ReadLine();
}
}
}
~~~