新聞中心
CRC校驗是計算機通信中常用的一種校驗方法,用于檢測數(shù)據(jù)傳輸過程中是否出現(xiàn)錯誤。在Linux系統(tǒng)中,也提供了相關(guān)的CRC校驗命令,本文將詳細介紹Linux中CRC校驗的相關(guān)知識以及如何使用CRC校驗命令進行文件校驗。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了通化縣免費建站歡迎大家使用!
什么是CRC校驗
CRC(Cyclic Redundancy Check)校驗是一種數(shù)據(jù)傳輸校驗技術(shù),它可以檢測數(shù)據(jù)是否在傳輸中丟失或出現(xiàn)錯誤。CRC校驗核心是通過計算數(shù)據(jù)的CRC值(循環(huán)冗余校驗值)并將其添加到數(shù)據(jù)中進行傳輸,接收端再計算校驗值并與發(fā)送端發(fā)送的校驗值進行比較,來判斷數(shù)據(jù)是否正確。
CRC校驗具有高效、快速、可靠等優(yōu)點,因此被廣泛應(yīng)用于計算機通信、存儲和傳輸?shù)阮I(lǐng)域。
使用CRC校驗命令進行文件校驗
在Linux系統(tǒng)中,通過CRC校驗命令可以對文件進行校驗,以保證文件在傳輸過程中的完整性。CRC校驗命令主要有crc32、cksum、sum等幾個常用命令。這些命令的使用方法和效果也有所不同。
1. crc32命令
crc32命令用于計算指定文件的CRC32值,CRC32值為一個32位的無符號整數(shù),可以用于校驗單個文件的完整性。
crc32命令的使用方法如下:
$ crc32 [文件名]
例如,計算test.txt文件的CRC32值:
$ crc32 test.txt
0c53072d
2. cksum命令
cksum命令可以計算指定文件的CRC校驗值和字節(jié)數(shù),其中CRC校驗值為一個32位的帶符號整數(shù)。cksum命令比crc32命令更為靈活,因為它不僅可以計算文件的校驗值,還可以計算文件的總字節(jié)數(shù),以便更全面地檢測文件的完整性。
cksum命令的使用方法如下:
$ cksum [文件名]
例如,計算test.txt文件的CRC校驗值和字節(jié)數(shù):
$ cksum test.txt
1349711791 12 test.txt
其中,1349711791為CRC校驗值,12為test.txt文件的總字節(jié)數(shù)。
3. sum命令
sum命令也可以用于計算指定文件的校驗和,也就是CRC校驗值。sum命令相比另外兩個命令,其優(yōu)點是計算速度快,缺點是它只能計算文件的CRC16校驗值,校驗值為一個16位的無符號整數(shù)。
sum命令的使用方法如下:
$sum [文件名]
例如,計算test.txt文件的CRC16校驗值:
$ sum test.txt
16264 12 test.txt
其中,16264為test.txt文件的CRC16校驗值。
CRC校驗是計算機通信中常用的一種校驗方法,在Linux系統(tǒng)中,我們可以通過crc32、cksum、sum等命令對文件進行CRC校驗。這些命令可以根據(jù)不同的情況進行靈活的選擇,保證文件在傳輸過程中的完整性。
在使用CRC校驗命令進行文件校驗時,需要注意選擇適合的命令和正確的使用方法,以避免出現(xiàn)誤判等問題。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù)!
如何校驗CRC值
作二進制除法。
1、亮野發(fā)送數(shù)據(jù)比特序列為(10比特)。
2、生成多項式比特序列為10011(5比特,K=4),X的指數(shù)就是代表第幾位為1,而且1=X的0次方。
3、將發(fā)送數(shù)據(jù)比特序列乘以2的K(由2可知K為4),那么產(chǎn)生的乘積為。
4、將乘積用生成多項式比特序列去除,按模二算法得到余數(shù)1110。
模二算法就是兩數(shù)相減不產(chǎn)生借位,0-1=1。
步驟如如下所示:
擴展資料:
二進制除法的CRC校驗原理。
RC校驗原理看起來比較復(fù)雜,因為大多枯謹數(shù)書上基本上是以二進制的多項式形式來說明的。其實很簡單的問題,其根本思想就是先在要發(fā)送的幀后面附加一個數(shù)(這個就是用來校驗的校驗碼,但要注意,這里的數(shù)也是二進制序列的,下同),生成一個新幀發(fā)送給接收端。
當(dāng)然,這個附加的數(shù)不是隨意的,它要使所生成的新幀能與發(fā)送端和接收端共同選定的某個特定數(shù)整除(注意,這里不是直接采用二進制除法,而是采用一種稱之為“模2除法”)。到達接收端后,再把接收到的新幀除以(同樣采用“模2除法”)這個選定的除數(shù)。因為在發(fā)送端發(fā)送數(shù)據(jù)幀之前就已通過附加一個數(shù),做了“去余”處理(也就已經(jīng)能整除了),所以結(jié)果應(yīng)該是沒有余數(shù)。
如果有余數(shù),則表明該幀在傳輸過程中出現(xiàn)了差錯。
【詳細說明】“模2除法”與“算術(shù)除法”類似,但它既不向上位借位,也不比較除數(shù)和被除數(shù)的相同位數(shù)值的大小,只要以相同位數(shù)進行相除即可。模2加法運算為:1+1=0,0+1=1,0+0=0,無進位,也無借位;模2減法運算為:1-1=0,0-1=1,1-0=1,0-0=0,也無進位,無借位。
相當(dāng)于二進制中的邏輯異或運算。也就是比沒鍵基較后,兩者對應(yīng)位相同則結(jié)果為“0”,不同則結(jié)果為“1”。如100101除以1110,結(jié)果得到商為11,余數(shù)為1。
參考資料來源:
百度百科–CRC校驗
CRC檢查(16位),
CRC校驗,你首先要把信息看成是比特流,就是由位(bit)組成的信息,而不漏凳搜要有字節(jié)的概念,1~16共計返歷有16字節(jié)吧也就是16*8共計128個bit,也就是信息碼長度為k=128,R=16,
那么最后編粗賀碼長度就是128+16 = 18字節(jié)長,其中第17字節(jié)存放CRC校驗碼的高8位(高字節(jié))。
至于怎么計算16位校驗碼,可以參考
你理解錯銷鬧了。
CRC 基本定義:
設(shè)【要傳送的信息】中,【原文字段】為K位,【校驗字段】為R位,那么要傳送的信息一共長度為 N=K+R 位。
設(shè)要發(fā)送的信息為 v(x),原文為 m(x),校驗字段為 r(x),那么:
v(x) = x^R m(x) + r(x) = g(x)
m(x) 容易知道,就是原文的二進制形式。
r(x) 的計算方式:設(shè)有一個R次多項式g(x),也即是生宏顫成函數(shù),和 m(x)進行重復(fù)異或操作,最終得到一個R次多項式,就是 r(x)。
—-
下面來看你的問題:
根據(jù)你的描述,可以知道以下事實:
1)原文 m(x) :即數(shù)組 Buf~Buf,一共 16 個字節(jié),16*8 = 128 位。
2)校驗碼 r(x):即數(shù)組 Buf~Buf,一共 2 個字節(jié),2*8 = 16 位。
3)生成函數(shù) g(x):X16 + X15 + X2 + 1,這里 R=16,也即 g(x) 是 16次多項式。
4)題目中的描述:
Buf=Buf~Buf CRC code (calculation:X16 + X15 + X2 + 1)HIGH BYTE
Buf=Buf~Buf CRC code (calculation:X16 + X15 + X2 + 1)LOW BYTE
描述的是根據(jù) g(x),計算 r(x) 的算法。
具體的說,是根據(jù):
原文 :Buf~Buf,
以及生成函數(shù): X16 + X15 + X2 + 1,
得到校驗碼:Buf~Buf。
計算 r(x) 算法為:
已知 Buf~Buf 一共 8 個字節(jié),設(shè)一個 128 位組成蔽斗敗的序列為:
m(x) = f128 * X128 + f127 * X127 + … + f3 * X3 + f2 * X2 + f1
其中系數(shù) f127 ~ f1 取值只能為 0 或者 1,具體是值由 Buf~Buf 的相應(yīng)位決定。比如:
f127 就是 Buf 的更高位,f1 就是 Buf 的更低位。
簡述循環(huán)冗余碼CRC 校驗方法
CRC校驗 1、循環(huán)校驗碼(CRC碼):是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。 2、生成CRC碼的基本原理:任意一個由二進制位串組成的代碼都可以和一個系數(shù)僅為‘0’和‘1’取值的多項式一一對應(yīng)。例如:代碼對應(yīng)的多項式為x6+x4+x2+x+1,而多項式為x5+x3+x2+x+1對應(yīng)的代碼101111。 3、CRC碼集選擇的原則:若設(shè)伍隱櫻碼字長度為N,信息字段為K位,校驗字腔叢段為R位(N=K+R),則對于CRC碼集中的任一碼字,存在且僅存在一個R次多項式g(x),使得 V(x)=A(x)g(x)=xRm(x)+r(x); 其中: m(x)為K次信息多項式, r(x)為R-1次校驗多項式, g(x)稱為生成多項式: g(x)=g0+g1x+ g2x2+…+g(R-1)x(R-1)+gRxR 發(fā)送方通過指定的g(x)產(chǎn)生CRC碼字,接收方則通過該g(x)來驗證收到的CRC碼字。 4、CRC校驗碼軟件生成方法: 借助于多項式除法,其余數(shù)為校驗字段。 例如:信息字段代碼為:;對應(yīng)m(x)=x6+x4+x3+1 假設(shè)生成多項式為:g(x)=x4+x3+1;則對應(yīng)g(x)的代碼為:x4m(x)=x10+x8+x7+x4 對應(yīng)的代碼記為:; 采用多項式除法: 得余數(shù)為: 1111 (即校驗字段為:1111) 發(fā)送方:發(fā)出的傳輸字段為:信息字段 校驗字段 接收方:使用相同的生成碼進行校驗:接收到的字段/生成碼(二進制除法) 如果能夠除盡,則正確, 給出余數(shù)(1111)的計算步驟: 除法沒有數(shù)學(xué)上的含義,而是采用計算機的模二除法,即,除數(shù)和被除數(shù)做異或運攜攜算0100 == 1111
關(guān)于linux crc校驗命令的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港云服務(wù)器機房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務(wù)器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務(wù),提供一站式解決方案。香港服務(wù)器-免備案低延遲-雙向CN2+BGP極速互訪!
網(wǎng)站欄目:了解Linux中的CRC校驗命令(linuxcrc校驗命令)
本文路徑:http://fisionsoft.com.cn/article/cojgdii.html


咨詢
建站咨詢
