0
以下命令爲2臺PC上的hashed_data生成不同的結果。在一個使用Visual Studio 2010和其他的Visual Studio 2013的Hash一般應具有相同輸入產生相同的結果C++ hash在VS 2010和VS 2013上使用相同的輸入返回不同的結果
hash<string> hash_func;
unsigned long long hashed_data = (unsigned long long)hash_func("dogcat");
與VS電腦2010年業績6824943158688951155
用VS 2013的結果計算機14899951770080783754
其他輸入也產生兩臺PC之間的不同結果。
你爲什麼認爲你應該得到相同的結果? – juanchopanza
'std :: hash'用於散列容器,它爲不同運行中的相同輸入生成不同散列的能力是防止dos攻擊的一個功能。如果您希望運行,機器和實現之間的可重複性,請使用類似SHA的標準。 –
該標準沒有說明應該如何計算哈希值,因此我們可以預計它會因不同的實現而有所不同。 –