ファイルの URL をパラメーターとして取り、そのファイルの MD5 ハッシュを返す関数を作成しました。
この関数によって (開発環境で) 生成されたハッシュは、同じファイルに対してサードパーティ ツールによって生成されたハッシュと一致します。
しかし、これがクライアントの QA 環境に展開されたとき、この関数は関数が呼び出されるたびに異なる値を返します。
私はいくつかのGoogle-ingを行い、問題はdevが原因である可能性があることを発見しました. サーバーは 64 ビットで、QA サーバーは 32 ビットでした。クライアントのサーバーにアクセスできないため、別の 32 ビット サーバーにデプロイしたところ、32 ビット サーバーでもハッシュが一致することがわかりました (機能は期待どおりに機能しますか?)。
この質問も見ました。
ここに私が書いた関数があります:
public static String GetMD5HashFromFile(String url)
{
String response = String.Empty;
HttpWebRequest aRequest = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse aResponse = (HttpWebResponse)aRequest.GetResponse())
{
MD5 md5 = new MD5CryptoServiceProvider();
byte[] retVal = md5.ComputeHash(aResponse.GetResponseStream());
response = "MD5:" + BitConverter.ToString(retVal).Replace("-", string.Empty);
}
return response;
}
私の質問は次のとおりです。この関数がさまざまな値を返す理由は何でしょうか? 問題は私の機能にありますか?