确定 8 位模 256 校验和形式 ascii 字符串 [-Python]



我想确定 ASCII 字符串的 8 位模 256 校验和。我知道公式是:

checksum = (sum of bytes)%256

如何在python中执行此操作(操作字节(?如果我从一个字符串开始:"1c03e8",我应该输出0x94.主要问题是我不确定如何找到 ASCII 字符串的字节总和。这是我正在寻找的主要思想:

https://www.scadacore.com/tools/programming-calculators/online-checksum-calculator/

它有校验和8模256

我试过:

component = ('1c03e8') 
for i in range(len(component)):
checksum.append(int(float(component[i].encode("hex"))))
print checksum
print hex(int(sum(checksum)%256))

这虽然给了我0x52

您需要将字符串编码为 ASCII,因为正如您所说,它是一个 ASCII 字符串。

例如,快速和肮脏的解决方案:

print(hex(sum('1c03e8'.encode('ascii')) % 256))
def calc_checksum(s):
sum = 0
for c in s:
sum += ord(c)
sum = sum % 256
return '%2X' % (sum & 0xFF)

print calc_checksum('1c03e8'.encode('ascii'))

试试校验和计算器包。

第 1 步:

pip install checksum-calculator

第 2 步:

from checksum_calculator import *

inputString = "your_string"
outputString = inputString.encode('utf-8').hex()

print(compute_checksum8_xor(outputString))
print(compute_checksum8_mod256(outputString))
print(compute_checksum8_2s_complement(outputString))

最新更新