Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算C#中文件内容的哈希值?_C# - Fatal编程技术网

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

计算C#中文件内容的哈希值?,c#,C#,我需要计算C#中文件内容的哈希值?所以,我可以在我的应用程序中比较两个文件哈希。我已经搜索过了,但没有找到 您应该更好地搜索;) 您可以使用MD5CryptoServiceProvider,它可以处理基于文本的文件以及二进制文件 byte[] myFileData = File.ReadAllBytes(myFileName); byte[] myHash = MD5.Create().ComputeHash(myFileData); 或者。。。如果使用大文件,并且不希望将整个文件加载到内存中

我需要计算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);
您可以将两个文件中的字节数组与
可枚举.SequenceEqual
进行比较:

myHash1.SequenceEqual(myHash2); 

您还可以尝试创建一个CRC计算器。请参阅:

是否确实需要将整个字节数组转换为字符串?我似乎需要做很多工作来比较这两个散列。你应该在流上使用
use
,而不是显式调用
Close()
。真的需要将整个文件转换为字节数组吗?@svick:我更新了答案。谢谢你的意见@MartinMulder,我能用字典来存储散列并用TryGetValue来比较吗?)散列的散列(散列的散列)@MartinMulder,嗯……它不适用于字典……@Admilland:我想你的问题完全离题了。您的问题是关于在字典中使用字节数组作为键。也许你可以提出一个新问题。
byte[] myHash;
using (var md5 = MD5.Create())
using (var stream = File.OpenRead(myFileName))
    myHash = md5.ComputeHash(stream);
myHash1.SequenceEqual(myHash2);