System.Security.Cryptography.MD5'i kullanmak çok basit :
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(filename))
{
return md5.ComputeHash(stream);
}
}
( Aslında kullanılan MD5 uygulamasının atılması gerekmediğine inanıyorum, ancak yine de yine de yaparım.)
Sonuçları daha sonra nasıl karşılaştıracağınız size bağlıdır; bayt dizisini örneğin base64 biçimine dönüştürebilir veya baytları doğrudan karşılaştırabilirsiniz. (Sadece dizilerin geçersiz kılmadığının farkında olun Equals
. Base64 kullanmak doğru olmak için daha basit, ancak yalnızca karmaları karşılaştırmakla ilgileniyorsanız biraz daha az verimli.)
Hash'i bir dize olarak temsil etmeniz gerekiyorsa, şunu kullanarak hex'e dönüştürebilirsiniz BitConverter
:
static string CalculateMD5(string filename)
{
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(filename))
{
var hash = md5.ComputeHash(stream);
return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
}
}
}