我的問題是這樣的。我有一塊數據。偶爾這個數據塊會被更新,並且會出現一個新的更改版本。我需要檢測我正在查看的數據是否與我期望收到的版本匹配。使用非加密散列來指紋數據塊可以嗎?
我決定使用指紋,這樣我就可以避免全部存儲「預期」版本的數據。似乎這種事情的'默認'選擇是MD5哈希。
但是MD5被設計爲加密安全。有更快的散列函數。我正在研究現代非加密函數,如CityHash和SpookyHash。
因爲我控制一切在我的系統我只在乎意外碰撞,其中數據的改變區塊哈希值相同的值的數據。因此,我不認爲我必須擔心加密哈希的「攻擊者防範」性質,並可能使用更簡單的哈希函數逃脫。
是否有使用哈希函數,如CityHash或SpookyHash此目的的任何問題,或者我應該只是堅持用MD5?還是應該使用專門用於指紋識別的東西,例如拉賓指紋?