没有库的python中的自定义crc32计算

问题描述

我一直在寻找可以生成crc32-sum的简单python代码。它用于stm32,我找不到可调整的好示例。

为进行正确的计算,我在下面使用了

http://www.sunshine2k.de/coding/javascript/crc/crc_js.html

设置如下:

多项式:0x4C11DB7, 初始值:0xFFFFFFFF 并且没有Xor值或0x00,也不会反映输入和结果。

有人知道我在哪里可以得到一种简单的可调算法,或者在哪里可以学习如何编写算法?

编辑: 我使用此功能创建表格

def create_table():
    a = []
    for i in range(256):
        k = i
        for j in range(8):
            if k & 1:
                k ^= 0x4C11DB7
            k >>= 1
        a.append(k)
    return a

及以下用于生成crc-sum

def crc32(bytestream):
    crc_table = create_table()


    crc32 = 0xffffffff

    for byte in range( int(len(bytestream)) ):
        lookup_index = (crc32 ^ byte) & 0xff
        crc32 = (crc32 >> 8) ^ crc_table[lookup_index]

    return crc32

并以此调用函数

print(hex(crc32(b"1205")))

结果是:0x9f8e7b8c

但是网站给了我:0xA7D10A0A

有人可以帮我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)