计算C#中文件内容的哈希值?

我需要计算C#中文件内容的哈希值? 所以,我可以在我的应用程序中比较两个文件哈希值。 我有搜索但没找到。

您可以使用MD5CryptoServiceProvider ,它将使用基于文本的文件以及二进制文件。

 byte[] myFileData = File.ReadAllBytes(myFileName); byte[] myHash = MD5.Create().ComputeHash(myFileData); 

或者……如果您使用大文件而不想将整个文件加载到内存中:

 byte[] myHash; using (var md5 = MD5.Create()) using (var stream = File.OpenRead(myFileName)) myHash = md5.ComputeHash(stream); 

您可以使用Enumerable.SequenceEqual与两个文件中的字节数组进行比较:

 myHash1.SequenceEqual(myHash2); 

您也可以尝试创建CRC计算器。 请参阅: http : //damieng.com/blog/2006/08/08/calculating_crc32_in_c_and_net

你应该更好地搜索;)

 using System.IO; using System.Text; using System.Security.Cryptography; protected string GetMD5HashFromFile(string fileName) { FileStream file = new FileStream(fileName, FileMode.Open); MD5 md5 = new MD5CryptoServiceProvider(); byte[] retVal = md5.ComputeHash(file); file.Close(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < retVal.Length; i++) { sb.Append(retVal[i].ToString("x2")); } return sb.ToString(); } 

像这样将文件传递给这个函数。

 GetMD5HashFromFile("text1.txt"); GetMD5HashFromFile("text2.txt");