我有7個文件,我正在生成MD5哈希。哈希用於確保數據存儲的遠程副本與本地副本相同。不幸的是,這兩個數據副本之間的聯繫令人頭腦遲鈍。對數據的更改非常少見,但我有一個要求,即數據必須始終同步(或儘快)。我並不是在我的(非常慢的)通信鏈路上傳遞7個不同的MD5散列,而是爲每個文件生成散列,然後將這些散列組合成一個散列,然後我可以傳輸然後重新計算/用於比較在遠程端。如果「組合散列」不同,那麼我會開始發送7個獨立散列來確定哪些文件已被更改。例如,這裏的MD5哈希爲7檔截至上週:結合多個文件的MD5哈希
0709d609d69385255c496436eb50402c
709465a74411bd596595c7b9b158ae6a
4ab657320ef33e3d5eb498e4c13d41b7
3b49c6ab199994fd776bb63761414e72
0fc28c5a010fc3c06c0c930c88e31a15
c4ecd214662cac5aae0e53f6f252bf0e
8b086431e43148a2c2d943ba30d31cc6
我想這些散列結合在一起,這樣我得到一個獨特的價值,我(也許是另一個MD5哈希?)然後可以發送到遠程系統。在遠程系統上,我會執行相同的計算來確定整個數據是否已被更改。如果有,那麼我會開始發送各個哈希等。最重要的因素是我的「組合哈希」應該足夠短,以便它比使用首先發送全部7個哈希的帶寬更少。我想將7個MD5散列寫入一個文件,然後散列該文件,但有沒有更好的方法?
它應該工作,只要確保本地和遠程系統之間哈希的順序相同 – Martheen