我需要对二维码的字符串执行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。