Поскольку я попробовал эти ответы и обнаружил, что ни один из них не меняет каждое редактирование exe или вообще не меняет, я обнаружил что-то, что действительно работает.
Я не редактировал здесь никакого кода,все это было с указанной ниже страницы.
Ссылка: http://www.vcskicks.com/self-hashing.php
internal static class ExecutingHash
{
public static string GetExecutingFileHash()
{
return MD5(GetSelfBytes());
}
private static string MD5(byte[] input)
{
return MD5(ASCIIEncoding.ASCII.GetString(input));
}
private static string MD5(string input)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] originalBytes = ASCIIEncoding.Default.GetBytes(input);
byte[] encodedBytes = md5.ComputeHash(originalBytes);
return BitConverter.ToString(encodedBytes).Replace("-", "");
}
private static byte[] GetSelfBytes()
{
string path = Application.ExecutablePath;
FileStream running = File.OpenRead(path);
byte[] exeBytes = new byte[running.Length];
running.Read(exeBytes, 0, exeBytes.Length);
running.Close();
return exeBytes;
}
}
Кажется, что каждый тест выдает правильные результаты.Я бы порекомендовал всем, кто видел это, использовать этот класс или сделать что-то из этого.