@
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();
        }
    }
}
~~~