回覆列表
  • 1 # 雁塔菜農

    HotCRC計算器中的“運算流”內顯示的是明文流進行CRC運算時,真實的內部讀取位元組順序。

    對於左移CRC運算,明文是按大端資料排列的,故此時的明文流0123456789ABCDEF就是運算流0123456789ABCDEF。

    對於右移CRC運算,明文是按小端資料排列的,故此時的明文流0123456789ABCDEF不是運算流23016745AB89EFCD。(如下圖所示)

    因為是CRC16運算,故權值長度為16位即兩個位元組,而明文長度為8個位元組,故明文流被分為8/2=4組,0123,4567,89AB,CDEF。

    對應的小端運算流為2301,6745,AB89,EFCD。

    特別注意:

    菜農將CRC演算法總共分為6種,其中前5種CRC

    演算法是按位元組自然順序讀取資料的,即不管CRCn中的n是多少,都是每次讀取一個位元組。故根本沒有資料排列的問題。

    而第6種移位演算法(HotCRC計算器內部採用),它是俺每組資料長度為權值長度讀取資料的,故只有它可以記憶CRC運算中的移位位資訊,故只有它才可以完成CRC逆運算。

    而前5種CRC演算法是不可能實現CRC逆運算的。

  • 中秋節和大豐收的關聯?
  • 注意身體用日語怎麼說?