.NET 4.x Проверка целостности файла (Md5) - C#
Формулировка задачи:
Всем доброго времени суток.
Собственно в C# Я еще не селен,только начинающий...
Пишу программу одну,мне нужно чтобы была проверка файла на целостность по md5 и чтобы он брал сам хеш сумму md5 с сайта(фтп) и сверял ее с хешем от файла,возможно такое реализовать?
Юзал гугл нашел ну это не то,что мне нужно было,искал тут тоже такой же результат...
Надеюсь вы мне поможете.
Решение задачи: «.NET 4.x Проверка целостности файла (Md5)»
textual
Листинг программы
public class Md5Hash
{
public static Process[] procs;
public static string source = "dsetup.dll";
public static void Md5Protect()
{
using (MD5 md5Hash = MD5.Create())
{
string hash = GetMd5Hash(md5Hash, source);
string has2 = ("61af51bddf6fee4dd80920a4466811be");
bool hash3 = VerifyMd5Hash(md5Hash, source, has2);
if (VerifyMd5Hash(md5Hash, source, has2))
{
// MessageBox.Show("Совпадает.");
}
else
{
MessageBox.Show("Клиент повреждён, проведите полную проверку апдейтером.");
Application.Exit();
}
}
}
static string GetMd5Hash(MD5 md5Hash, string input)
{
FileStream file = new FileStream(source, 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();
}
static bool VerifyMd5Hash(MD5 md5Hash, string input, string hash)
{
string hashOfInput = GetMd5Hash(md5Hash, input);
StringComparer comparer = StringComparer.OrdinalIgnoreCase;
if (0 == comparer.Compare(hashOfInput, hash))
{
return true;
}
else
{
return false;
}
}
}