我想通過簡單地將它們連接在一起在網絡上發送幾個數據塊,我希望能夠使用校驗和來驗證一切都已經完成(這主要是作爲防禦檢查反對錯誤,不是因爲我看到或期望實際的低級別數據損壞)。所以我正在尋找一個校驗和算法,它可以讓我從部件的校驗和中計算整個校驗和。什麼校驗和技術會讓我從它的部件的校驗和中計算整個校驗和?
像我認爲會工作的技術的一個簡單的例子就是將每個塊的每個字節視爲一個整數,並將所有這些整數相加(當然,這不會檢測到缺少的零字節)。另一種方法是計算每個塊的長度(當然,這不會檢測到不會導致淨插入或刪除的數據更改)。另一種方法是將所有字節異或,但是這隻能生成1個字節的校驗和(我可以一次取4個字節,並對每個單元進行異或運算,但如果塊長度不相等,四倍的倍數,我不得不陷入混亂,我認爲這可能會消除簡單連接不同塊的能力)。
所以,我正在尋找更嚴重的校驗和或哈希算法,它仍然可以讓我輕鬆地計算給定每個塊的校驗和的幾個連接塊的校驗和。有沒有存在?
[Incremental Checksums]的可能重複(http://stackoverflow.com/questions/1173481/incremental-checksums) – gsteff 2012-04-23 00:37:02