我的應用程序作爲一個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