CRC演算法介紹

2021-09-05 10:08:03 字數 513 閱讀 8985

迴圈冗餘校驗(cyclic redundancy check) 通稱crc。是一種根據網路資料報或計算機檔案等資料產生簡短固定位數校驗碼的一種雜湊函式,主要用來檢測或校驗資料傳輸或者儲存後可能出現的錯誤。生成的數字在傳輸或者儲存之前計算出來並且附加到資料後面,然後接收方進行檢驗確定資料是否發生變化。一般來說,迴圈冗餘校驗的值都是32位的整數。由於本函式易於用二進位制的計算機硬體使用、容易進行數學分析並且尤其善於檢測傳輸通道干擾引起的錯誤,因此獲得廣泛應用

儘管在錯誤檢測中非常有用,crc並不能可靠地校驗資料完整性(即資料沒有發生任何變化),這是因為crc多項式是線性結構,可以非常容易地故意改變量據而維持crc不變。

與所有其它的雜湊函式一樣,在一定次數的碰撞測試之後crc也會接近100%出現碰撞。crc中每增加乙個資料位,碰撞機率就會減少接近50%,如crc-20與crc-21相比。

hash是把任意長度資料往固定長度資料上的一種對映,所以基於此概念,crc也是hash的一種。

相同點:

不同點:

CRC校驗和CRC各種演算法

crc校驗和crc各種演算法 1 簡介 crc即 迴圈冗餘校驗碼 cyclic redundancy check 是資料通訊領域中最常用的一種查錯校驗碼,其特徵是資訊字段和校驗欄位的長度可以任意選定。迴圈冗餘檢查 crc 是一種資料傳輸檢錯功能,對資料進行多項式計算,並將得到的結果附在幀的後面,接收...

CRC演算法原理

演算法原理 假設資料傳輸過程中需要傳送15位的二進位制資訊g 101001110100001,這串二進位製碼可表示為代數多項式g x x 14 x 12 x 9 x 8 x 7 x 5 1,其中g中第k位的值,對應g x 中x k的係數。將g x 乘以x m,既將g後加m個0,然後除以m階多項式h ...

CRC解碼演算法

利用crc演算法計算誤位元速率和誤位元率,研究此演算法的效能曲線。crc.h pragma once include includeclass crc16 crc.cpp include crc16.h 多項式除法 int crc16 polynomial division int data in,...