關於資料校驗

2021-06-14 09:04:10 字數 1410 閱讀 1687

1.什麼是資料校驗

通俗的說,就是為保證資料的完整性,用一種指定的演算法對原始資料計算出的乙個校驗值。接收方用同樣的演算法計算一次校驗值,如果和隨資料提供的校驗值一樣,就說明資料是完整的。

2.最簡單的檢驗

實現方法:最簡單的校驗就是把原始資料和待比較資料直接進行比較,看是否完全一樣這種方法是最安全最準確的。同時也是效率最低的。

適用範圍:簡單的資料量極小的通訊。

3.奇偶校驗parity check

實現方法:在資料儲存和傳輸中,位元組中額外增加乙個位元位,用來檢驗錯誤。校驗位可以通過資料位異或計算出來。

應用例子:微控制器串列埠通訊有一模式就是8位資料通訊,另加第9位用於放校驗值。

4.bcc異或校驗法(block check character)

實現方法:很多基於串列埠的通訊都用這種既簡單又相當準確的方法。它就是把所有資料都和乙個指定的初始值(通常是0)異或一次,最後的結果就是校驗值,通常

把她附在通訊資料的最後一起傳送出去。接收方收到資料後自己也計算一次異或和校驗值,如果和收到的校驗值一致就說明收到的資料是完整的。

校驗值計算的**類似於:

unsigned ucrc=0;//校驗初始值

for(int i=0;i適用範圍:適用於大多數要求不高的資料通訊。

應用例子:ic卡介面通訊、很多微控制器系統的串列埠通訊都使用。

5.crc迴圈冗餘校驗(cyclic redundancy check)

實現方法:這是利用除法及餘數的原理來進行錯誤檢測的.將接收到的碼組進行除法運算

,如果除盡,則說明傳輸無誤;如果未除盡,則表明傳輸出現差錯。crc校驗

具還有自動糾錯能力。

crc檢驗主要有計算法和查表法兩種方法,網上很多實現**。

適用範圍:crc-12碼通常用來傳送6-bit字串;crc-16及crc-ccitt碼則用是來傳送

8-bit字元。crc-32:硬碟資料,網路傳輸等

應用例子:rar,乙太網卡晶元、mpeg解碼晶元中

6.md5校驗和數字簽名

實現方法:主要有md5和des演算法。

適用範圍:資料比較大或要求比較高的場合。如md5用於大量資料、檔案校驗,des用於保

密資料的校驗(數字簽名)等等。

應用例子:檔案校驗、銀行系統的交易資料

7.資料校驗的乙個實際應用

防止自己的程式被篡改的例子。

有些可執行程式,當被改了資源時再執行會有檔案已損壞的提示,這就是使

用了資料校驗。本例是用md5做為資料校驗的演算法。當然你可以使用個性化的

比如des作為數字簽名,那樣安全性更高。

編譯時,將提示如圖1的資訊,請記下上面的數值,然後寫回程式的比較字元

中。再次編譯就不會提示了,直接進入程式。如果你使用pe資源修改器修改

改該exe檔案了資源,再執行又會出現圖1的提示。具體請見**及注釋。

關於資料的校驗

在一般的程式設計中,通常是將資料的校驗分成兩個部分實現,乙個是資料格式的校驗,另外就是資料邏輯的校驗,或者是資料業務邏輯校驗 目前我能想到的校驗,只有這兩個部分 資料格式的校驗,是在表示層處理,如果是struts用validate.xml校驗就可以。做邏輯校驗的地方很多都不一樣,我看有在action...

關於前後端資料校驗

必須在後端校驗的 唯一性驗證,驗證碼,敏感詞,出錯概率高的要做非同步校驗。後端校驗可以防止介面被私自呼叫導致破壞資料庫結構 避免有人模擬瀏覽器行為直接給伺服器發請求。有必要在前端校驗的 必填項 郵箱 號 位址 格式 密碼強度檢測。前端校驗便於使用者糾正 快速反饋 並且減少伺服器壓力 節省流量 減少無...

關於資料校驗糾錯演算法

最近對於資料傳輸的噪音損耗問題的解決方案查了些資料 就此做乙個總結 資料損壞 因為網線被老鼠啃了或者硬碟摔地上了導致資料錯了 錯誤校驗 即檢驗某一段資料是否有誤。因為是不是有誤光憑資料本身不可能知道,所以必須加上附加的認證方法 當然最簡單的認證方法就是再傳一次資料,拿著資料乙個個對著原本的資料對照一...