核對和
為偵測錯誤而從任意數位資料區塊計算的小型基準
此條目沒有列出任何參考或來源。 (2018年12月26日) |
校驗和(英語:Checksum)是冗餘校驗的一種形式。 其透過錯誤檢測方法,對經過空間(如通信)或時間(如電腦記憶體)所傳送資料的完整性進行檢查的一種簡單方法。
計算機領域常見的校驗和的方法有循環冗餘校驗(CRC)、MD5、SHA家族等。
產生核對和的實際過程一般是向核對函數或核對和算法輸入給定的數據,一個良好的核對和算法通常會對進行很小的修改的輸入數據都會輸出一個顯著不同的值。
算法
編輯一種最簡單直觀的Checksum計算方式是將資料切分成固定長度的小塊後進行加總,接著進行遮罩(mask)運算後得到檢查碼,
例如一筆16進制數值資料{0x6A, 0x00, 0xC8},以加總寬度8 bit,輸出遮罩8 bit計算檢查碼:
Ans = (0x6A + 0x00 + 0xC8) mask 0xFF
= 0x132 mask 0xFF
= 0x32
intel HEX 文件格式定義的檢查欄位(CC)則使用另一種風格的計算方式,等同於將基本的Checksum結果取2補數:
CC = 0x100 - ( Sum( data ) mask 0xFF )
例如 16進制數值資料{0x6A, 0x00, 0xC8}
Ans = 0x100 - ((0x6A + 0x00 + 0xC8) mask 0xFF)
= 0x100 - (0x32)
= 0xCE
參見
編輯這是一篇與電信相關的小作品。您可以透過編輯或修訂擴充其內容。 |