当字符串中包含“&”时,得到不同的CRC-16 / CCITT-FALSE结果

时间:2019-04-30 16:02:28

标签: python-2.7 crc16

我需要对二维码的字符串执行CRC-16 / CCITT-FALSE。该代码有效,但是当字符串中包含“&”时,我得到的结果将有所不同。该如何解决?

我是python 2.7编程的初学者。不幸的是,我暂时不能使用python 3。

我正在尝试对以下字符串进行CRC-16 / CCITT-FALSE。

“ 00020101021226360009SG.PAYNOW0101202095292519L0301052040000530370254043.005802SG5911COMPANYNAME6009Singapore6214011012345678906304”

这是我到目前为止所做的。

# module from https://pycrc.org
import pycrc.algorithms

data_for_crc = "00020101021226360009SG.PAYNOW0101202095292519L0301052040000530370254043.005802SG5911COMPANYNAME6009Singapore6214011012345678906304"

# code example from https://pycrc.org
crc = pycrc.algorithms.Crc(width = 16, poly = 0x1021,
  reflect_in = False, xor_in = 0xffff,
  reflect_out = False, xor_out = 0x0000)

my_crc = crc.bit_by_bit_fast(data_for_crc)
print ('{:#04x}'.format(my_crc))

这正在工作。我正在以下网站上进行检查。 https://crccalc.com/

这是我的问题。

如果字符串中包含“&”,则crc与https://crccalc.com/的结果不匹配

这里是一个例子。对于以下字符串,“ 00020101021226360006000SG.PAYNOW0101202095292519L0301052040000530370254043.005802SG5911COMPANY和名称6009Singapore6214011012345678906304”的结果是https://crccalc.com为“ 0xD167” 在上面的代码中,结果为“ 0x1e80”

在进入CRC之前必须准备字符串吗?如何获得与https://crccalc.com

相同的结果

另一个问题,是否无需安装模块即可执行此操作?就像只使​​用标准的python。

0 个答案:

没有答案