我的应用程序作为一个Windows服务运行,我将VS2013附加到它的进程调试。我得到的哈希代码的图像文件的内容来检查以下方法差异(静态类中):C#String.getHashCode()为不同的字符串返回相同的值
static class FileUtils
{
public static int GetFileHash(string filePath)
{
int hash = 0;
Logger.WriteLog(ToolTipIcon.Info, "Calculating hash code for {0}", filePath);
StreamReader sr = new StreamReader(filePath, Encoding.Unicode);
hash = sr.ReadToEnd().GetHashCode();
sr.Close();
return hash;
}
}
已在生产中正常工作。但是,此方法将始终返回2074746262两个不同的图像。我试图在具有相同代码和图像的WinForms应用程序中重现这一点,但我不能。在VS2013中调试进程会有什么问题会导致这种行为?我用完全不同的图像替换了其中一幅图像,但仍然发生。
什么调用这个样子的代码?它是否穿线? – Liam
谁说'string.GetHashCode'将是唯一的?这取决于代码执行的日期等 –
'GetHashCode'不适用于为大型二进制文件创建摘要。使用例如改为MD5或SHA1散列。谷歌的“密码哈希”。 – stakx