CRC32學習總結

2021-07-15 23:55:33 字數 742 閱讀 8408

這幾天一直在研究crc相關的知識,本來通訊網學習過相關的知識,但是比較淺。通過這幾天的尤其是今天的學習,我對於crc有了全新的認識。課本上主要著重介紹直接計算法,就是資料補零再和生成多項式做除法。這種方法利用迴圈來實現是比較容易的,但是在fpga中,想要利用硬體的併發性來實現crc的計算。最近一直在做網路協議棧相關的東西,所以開刀的物件就是crc32了。上網找了很多相關部落格,研究了序列crc和並行crc,對於驅動表法和直驅表法有些一知半解。當然最重要的是發現了crc32是有「計算模式」的!!!!!

首先初始暫存器中的值不能是0,因為如果是零,對於資料0x00和0x00000000所得到的crc32校驗值都是0,所以要用ffffffff作為初始值。這就涉及到crc32的計算模式了

name   : "crc-32" 

width : 32

poly : 04c11db7

init : ffffffff

refin : true

refout : true

xorout : ffffffff

check : cbf43926

refin=true,表示輸入資料的每個位元組需要「顛倒」,表示先傳送最低位lsb。

refout=true,表示計算完成後,要將暫存器中的值再顛倒。

xorout=ffffffff,表示還需要將結果值與0xffffffff進行xor,這樣就能得到最終的crc32值。

參考文件

[1][2]

CRC32演算法實現

crc32 檢錯能力極強,開銷小,易於用編碼器及檢測電路實現。從其檢錯能力來看,它所不能發現的錯誤的機率僅為0.0047 以下。從效能上和開銷上考慮,均遠遠優於奇偶校驗及算術和校驗等方式。因而,在資料儲存和資料通訊領域,crc無處不在 著名的通訊協議x.25的fcs 幀檢錯序列 採用的是crc cc...

CRC32爆破小結

最近在bugku遇到了一道隱寫題,binwalk之後發現裡面有很多個壓縮包。然後就無從下手,於是檢視別人大佬的wp才發現是crc32爆破,由於本人第一次遇到這種題目,就記錄一下吧。crc想必大家都知道,它的全稱是迴圈冗餘校驗 cyclic redundancy check,crc 用來校驗檔案是否出...

CRC32繞過RAR密碼

遇到一道題,加密了50位。所以,爆破果斷捨棄 事實上,rar的壓縮文件中是提供乙個crc32的值,這個值是文件在壓縮之前的crc32值,相信很多人都知道 每個不同的檔案都有唯一的乙個crc32值,就算是可能有重複的,那麼在內容為1 49的這個小範圍內的txt文字也不會有重複。題目提示6位純數字,上指...