複製鏈接
請複製以下鏈接發送給好友

CRC檢查

鎖定
CRC,中文名稱為循環冗餘校驗,CRC屬於密碼學一類算法,常用於數據校驗,一般會用來檢測程序是否被脱殼或者被修改,以達到防破解的目的。
軟件名稱
循環冗餘校驗
軟件平台
Windows
軟件語言
英文
應    用
數據校驗

CRC檢查產生機制

CRC,中文名稱為循環冗餘校驗,CRC屬於密碼學一類算法,常用於數據校驗,一般會用來檢測程序是否被脱殼或者被修改,已達到防破解的目的。
CRC即循環冗餘校驗碼(Cyclic Redundancy Check):是數據通信領域中最常用的一種差錯校驗碼,其特徵是信息字段和校驗字段的長度可以任意選定。

CRC檢查基本原理

目錄詳細介紹代數學的一般性算法生成CRC碼的基本原理:任意一個由二進制位串組成的代碼都可以和一個係數僅為‘0’和‘1’取值的多項式一一對應。例如:代碼1010111對應的多項式為x6+x4+x2+x+1,而多項式為x5+x3+x2+x+1對應的代碼101111。

CRC檢查運作原則

CRC碼集選擇的原則:若設碼字長度為N,信息字段為K位,校驗字段為R位(N=K+R),則對於CRC碼集中的任一碼字,存在且僅存在一個R次多項式g(x),使得
V(x)=A(x)g(x)=xRm(x)+r(x)
;
其中: m(x)為K-1次信息多項式, r(x)為R-1次校驗多項式,
g(x)稱為生成多項式:
g(x)=g0+g1x1+ g2x2+...+g(R-1)x(R-1)+gRxR
發送方通過指定的g(x)產生CRC碼字,接收方則通過該g(x)來驗證收到的CRC碼字。

CRC檢查生成方法

CRC校驗碼軟件生成方法:
藉助於多項式除法,其餘數為校驗字段。
例如:信息字段代碼為:
1011001
;對應
m(x)=x6+x4+x3+1
假設生成多項式為:g(x)=x4+x3+1;則對應g(x)的代碼為: 1
1001
x4m(x)=x10+x8+x7+x4
對應的代碼記為:
10110010000
採用多項式除法: 得餘數為: 1010 (即校驗字段為:1010)
發送方:發出的傳輸字段為:
1 0 1 1 0 0 1 1010
信息字段 校驗字段
接收方:使用相同的生成碼進行校驗:接收到的字段/生成碼(二進制除法)
如果能夠除盡,則正確,
給出餘數(1010)的計算步驟:
除法沒有數學上的含義,而是採用計算機的模二除法,即,除數和被除數做異或運算。進行異或運算時除數和被除數最高位對齊,按位異或。
1011001 0000
-11001
--------------------------
=01111010000
1111010000
-11001
-------------------------
=0011110000
11110000
-11001
--------------------------
=00111000
111000
- 11001
-------------------
= 001010

利用CRC進行檢錯的過程可簡單描述為:在發送端根據要傳送的k位二進制碼序列,以一定的規則產生一個校驗用的r位監督碼(CRC碼),附在原始信息後邊,構成一個新的二進制碼序列數共k+r位,然後發送出去。在接收端,根據信息碼和CRC碼之間所遵循的規則進行檢驗,以確定傳送中是否出錯。這個規則,在差錯控制理論中稱為“生成多項式”。