cq9电子·(中国)官方网站

技術服務
24小時提供高效率、高質量的技術支持

數據通信中常用的幾種校驗方式分析

时间:2020-01-13 11:50:28來源:本站原創
  數據校驗就是對通信中傳送與接收方對數據完整性的檢查,數據校驗常用到一些算法用于對數據完整性進行檢查。如果數據的傳送與接收方使用相同的算法對數據進行校驗,得出的結果一致,則說明數據是完整的,可以信賴,否則則說明數據不完整,需要對數據進行檢查。在通信領域常用的幾種校驗方法如下:
  1、最簡單的檢驗
  實現方法:最簡單的校驗就是把原始數據和待比較數據直接進行比較,看是否完全一樣這種方法是最安全最准確的。同時也是效率最低的。
  適用範圍:簡單的數據量極小的通訊。
  2、md5校驗和數字簽名
  實現方法:主要有md5和des算法。
  適用範圍:數據比較大或要求比較高的場合。如md5用于大量數據、文件校驗,des用于保密數據的校驗(數字簽名)等等。

  應用例子:文件校驗、銀行系統的交易數據。


  3、奇偶校验Parity Check
  實現方法:在数据存储和传输中,字节中额外增加一个比特位,用来检验错误。校验位可以通过数据位异或计算出来。
根據被傳輸的一組二進制代碼的數位中“1”的個數是奇數或偶數來進行校驗。采用奇數的稱爲奇校驗,反之,稱爲偶校驗。采用何種校驗是事先規定好的。通常專門設置一個奇偶校驗位,用它使這組代碼中“1”的個數爲奇數或偶數。若用奇校驗,則當接收端收到這組代碼時,校驗“1”的個數是否爲奇數,從而確定傳輸代碼的正確性。 
  應用例子:單片機串口通訊有一模式就是8位數據通訊,另加第9位用于放校驗值。
  4、crc循环冗余校验(Cyclic Redundancy Check)
  實現方法:这是利用除法及余数的原理来进行错误检测的。将接收到的码组进行除法运算,如果除尽,则说明传输无误;如果未除。虮砻鞔涑鱿植畲怼rc校验具还有自动纠错能力。
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
  適用範圍:CRC-12碼通常用來傳送6-bit字符串;CRC-16及CRC-CCITT碼則用是來傳送8-bit字符。CRC-32:硬盤數據,網絡傳輸等。
  應用例子:rar,以太網卡芯片、MPEG解碼芯片中。
  5、bcc异或校验法(block check character)
  實現方法:很多基于串口的通讯都用这种既简单又相当准确的方法。它就是把所有数据都和一个指定的初始值(通常是0)异或一次,最后的结果就是校验值,通常把她附在通讯数据的最后一起发送出去。接收方收到数据后自己也计算一次异或和校验值,如果和收到的校验值一致就说明收到的数据是完整的。
  校驗值計算的代碼類似于:
  unsigned uCRC=0;//校验初始值
  for(int i=0;i   適用範圍:適用于大多數要求不高的數據通訊。
  應用例子:ic卡接口通訊、很多單片機系統的串口通訊都使用。
  對于通信中如何確保數據的完整性是一項重要的安全問題,只有數據完整才能算是一次完整的通信,采用何種校驗更加適合所檢驗的數據也是一項重要的工程。
计讯物联——物联网産品与行业解决方案提供商 申請樣機
All Rights Reserved 廈門cq9电子官方网站物聯科技有限公司版權所有 閩ICP備15001895號 闽公网安备 35021102001331号
【网站地图】【sitemap】