常見的資料校驗方法
1. 校驗是什麼
校驗,是為保護資料的完整性,用一種指定的演算法對原始資料計算出的乙個校驗值。當接收方用同樣的演算法再算一次校驗值,如果兩次校驗值一樣,表示資料完整。
2. 最簡單的校驗
實現方法:將原始資料和待比較的資料直接進行比較,看是否完全一樣。
特點:最安全準確效率最低
適用範圍:簡單的資料量極小的通訊
3. 奇偶校驗
實現方法:在資料儲存和傳輸中,位元組中額外增加乙個位元位,用來傳送奇/偶校驗位來檢驗錯誤。
奇校驗:所有傳送的數字(含字元的各數字和校驗位)中,「1」的個數為奇數,如:
1 0110,0101
0 0110,0001
偶校驗:所有傳送的數字(含字元的各數字和校驗位)中,「1」的個數為偶數,如:
特點:能夠檢測出資訊傳輸過程中的1位誤碼。
出現錯誤後,不能進行修改,只能要求重發。
簡單,應用範圍廣。
4. crc迴圈冗餘校驗
實現方法:利用除數以及餘數的原理進行錯誤檢測,將接收到的碼組進行除法運算
,如果除盡,則說明傳輸無誤;如果未除盡,則表明傳輸出現差錯。
生成crc碼的基本原理:任意乙個由二進位制位串組成的**都可以和乙個係數僅為『0』和『1』取值的多項式一一對應。例如:**1010111對應的多項式為x6+x4+x2+x+1,而多項式為x5+x3+x2+x+1對應的**101111。
crc碼集選擇的原則:若設碼字長度為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
傳送方通過指定的g(x)產生crc碼字,接收方則通過該g(x)來驗證收到的crc碼字。
crc校驗碼軟體生成方法:
借助於多項式除法,其餘數為校驗字段。
例如:資訊字段**為: 1011001;對應m(x)=x6+x4+x3+1
假設生成多項式為:g(x)=x4+x3+1;則對應g(x)的**為: 11001
x4m(x)=x10+x8+x7+x4 對應的**記為:10110010000;
採用多項式除法: 得餘數為: 1010 (即校驗欄位為:1010)
傳送方:發出的傳輸欄位為:1 0 1 1 0 0 11 0 10
資訊字段 校驗字段
接收方:使用相同的生成碼進行校驗:接收到的字段/生成碼(二進位制除法)
如果能夠除盡,則正確。
特點:資訊字段和校驗欄位的長度可以任意選定。
編碼和解碼方法簡單,檢錯和糾錯能力強,在通訊領域廣泛地用於實現差錯控制。
具體實現**見部落格:
5. bcc異或校驗法
實現方法:將所有資料都和乙個指定的初始值(通常是
0)異或一次,所得結果為校驗值。接收方收到資料後自己也計算一次異或和校驗值,如果和收到的校驗值一致就說明收到的資料是完整的。
特點:應用於很多基於串列埠的通訊方法。
6.
md5校驗和數字簽名
實現方法:主要有
md5和
des演算法。
適用範圍:資料比較大或要求比較高的場合。如md5用於大量資料、檔案校驗,des用於保密資料的校驗(數字簽名)等等。
應用例子:檔案校驗、銀行系統的交易資料
如客戶往我們資料中心同步乙個檔案,該檔案使用
md5校驗,那麼客戶在傳送檔案的同時會再發乙個存有校驗碼的檔案,我們拿到該檔案後做
md5運算,得到的計算結果與客戶傳送的校驗碼相比較,如果一致則認為客戶傳送的檔案沒有出錯,否則認為檔案出錯需要重新傳送。
常見的資料校驗方法
校驗,是為保護資料的完整性,用一種指定的演算法對原始資料計算出的乙個校驗值。當接收方用同樣的演算法再算一次校驗值,如果兩次校驗值一樣,表示資料完整。1.奇偶校驗 實現方法 在資料儲存和傳輸中,位元組中額外增加乙個位元位,用來傳送奇 偶校驗位來檢驗錯誤。奇校驗 所有傳送的數字 含字元的各數字和校驗位 ...
CRC校驗方法
協議中使用 crc校驗 crc 2位元組校驗 協議的word上提供了c的 dephi的vb的,但是沒提供c 的,所以根據vb的,我該寫成c 的。記錄一下,以備以後使用。private static int gen crc byte buffer,int bufferlength c convert....
常用校驗方法
是否為空校驗 function isempty s var lll trim s if lll null lll.length 0 return true else return false 刪除字串左邊的空格 function ltrim str if str.length 0 return st...