7
我已經寫了一個函數,它將文件的URL作爲參數並返回該文件的MD5哈希值。函數每次返回不同的MD5哈希值
此函數(在開發環境中)生成的哈希匹配由同一文件的第三方工具生成的哈希。
但是,當這部署在我的客戶的QA環境中時,每次調用函數時此函數都會返回不同的值。
我做了一些Google搜索,發現問題可能是因爲開發者。服務器是64位,QA服務器是32位。由於我無法訪問客戶端的服務器,因此我將它部署在另一臺32位服務器上,發現即使在32位服務器中,哈希也是匹配的(函數按預期工作?)。我也看過this question。
這裏是我寫的函數:
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;
}
我的問題是;這個函數返回各種值的原因是什麼?問題在我的功能?
也許它與不同的語言環境有關?你是否嘗試用固定值替換'aResponse.GetResponseStream()'並查看問題是否仍然存在? – 2013-04-08 11:38:18
該URL上的頁面是否在調用之間改變? – Oded 2013-04-08 11:40:47
@ErikSchierboom:不,我沒有。我現在試試。謝謝 – 2013-04-08 11:41:45