2011-03-17 63 views
0

是否可以確定從CRC16計算中更改的字節或字節?例如,假設我得到一個780字節的配置文件,其中包含CRC16作爲結尾處的兩個字節值(因此CRC16基於第一個778字節計算)。當我計算文件內容的CRC16(最後不包含CRC16的778個字節)並且它不同時,我可以確定發生錯誤的字節偏移量?通過CRC16確定錯誤偏移字節

回答

1

簡短的答案是否定的,你不能。

要理解爲什麼您必須瞭解CRC是如何計算的,並且這在數學上稱爲哈希運算。這意味着輸出不能從生成的哈希碼(在這種情況下是CRC)可靠地重建。

有些統計分析方法可能允許您根據某些特定的輸入測試用例推斷一些關於原始文本的信息,但在大多數情況下,對於一個天真的觀察者來說,沒有直接映射回原始文本CRC。因此,除非原始文本以某種方式構建,否則無法知道大多數情況下數據發生更改的偏移量。

+0

原始文本(本例中爲配置文件)確實具有特定的格式。如在中,字節0-10表示文件的全部778字節的文件信息(2字節整數和8個1字節整數)等等。這是否有可能? – Jacob 2011-03-17 20:18:27

2

僅使用CRC16的兩個計算,

CRC16只是一個校驗和:它可以告訴你,有一個區別,但不是在哪裏。