V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
phpIsNumberOne
V2EX  ›  问与答

关于 CRC 循环冗余校验的问题

  •  
  •   phpIsNumberOne · 2021 年 2 月 4 日 · 814 次点击
    这是一个创建于 1896 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们上学的时候老师是这样讲的:
    发送端将校验码追加在数据最后、然后一起发送至接收端
    接收端收到数据后用生成多项式进行模 2 的除法,如果余数为 0,则无差错。

    我在想接收端能不能对原始数据再计算一次,比较两次的校验码是否相同来判断?就像 md5 那样

    由于通常的 CRC 协议,如 CRC32-IEEE 它会进行额外的操作,如字节翻转,结果反转,结果异或等操作,参考。如果要按照老师讲的方法,还得先对结果进行逆向操作。包中只有生成的方法、没有校验的方法。

    2 条回复    2021-02-05 10:22:55 +08:00
    phpIsNumberOne
        1
    phpIsNumberOne  
    OP
       2021 年 2 月 5 日
    ??没人知道吗?
    phpIsNumberOne
        2
    phpIsNumberOne  
    OP
       2021 年 2 月 5 日
    解决了,https://stackoverflow.com/questions/58393307/verification-of-a-crc-checksum-against-zero

    CRC32-IEEE,你把原始数据+校验码(LSB)拼接的数据,再进行一次计算,结果应该始终等于 0x2144DF1C
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3374 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:51 · PVG 19:51 · LAX 04:51 · JFK 07:51
    ♥ Do have faith in what you're doing.