1

これがシナリオです。自動更新機能を備えた winforms アプリケーションがあります。このアプリケーションには、現在の (ローカル) exe ファイルの md5 チェックサムを計算し、それを (サーバー) exe ファイルの md5 チェックサムと比較して、2 つのハッシュを比較することにより、サーバーに新しい更新があるかどうかを判断するメソッドが含まれています。ローカル マシンとサーバー上のファイル。

現在、この方法は私が持っている一部の PC で完全に機能し、アプリケーションを実行すると同じチェックサム ハッシュが得られます。問題は、別の MD5 ハッシュを取得しているため、常に自動更新メッセージが表示される他の PC にあります。その後、アプリケーションが自動更新を開始し、サーバーにファイルを再ダウンロードすると、新しい exe ファイルが取得されます。まったく異なるハッシュを使用します。私は本当に混乱しています 何がこれを引き起こす可能性がありますか? C#のダウンロード方法の問題でしょうか。md5関数自体の問題ですか?任意の入力をいただければ幸いです...

編集: md5 チェックサムを計算する方法

public static string GetMD5HashFromFile(string filename)
{
    using (var md5 = new MD5CryptoServiceProvider())
    {
        var buffer = md5.ComputeHash(File.ReadAllBytes(filename));
        var sb = new StringBuilder();
        for (int i = 0; i < buffer.Length; i++)
        {
            sb.Append(buffer[i].ToString("x2"));
        }
        return sb.ToString();
    }
}
4

0 に答える 0