我编写了一个函数,它将文件的 URL 作为参数并返回该文件的 MD5 哈希值。
此函数(在开发环境中)生成的哈希与第三方工具为同一文件生成的哈希相匹配。
但是当它部署在我客户的 QA 环境中时,每次调用该函数时,该函数都会返回不同的值。
我做了一些谷歌搜索,发现问题可能是因为开发人员。服务器是 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;
}
我的问题是;这个函数返回各种值的原因是什么?我的功能有问题吗?