python - 确定 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/
它有 CheckSum8 模 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))
推荐阅读
- javascript - 如何调用动态函数 .testnet() 或 .mainnet() JavaScript
- c++ - 如何根据文件自动生成唯一的 c++ 类
- c# - 在 C# 中关闭括号之前禁用 Visual Studio 插入单个空格
- clickonce - 通过 ClickOnce 进行的软件更新会改变已安装应用程序的路径吗?
- python - Python selenium:如何单击 span 元素?
- passwords - encfs:不小心丢弃了 .encfs6.xml 文件,但我知道密码。如何重置?
- sed - sed - 连接两个命令,数字行
- spring - 在两个日期之间从数据库中获取记录,并且日期字段之一可以使用 spring jpa 具有空值
- python - Python - Tensorflow.lite.interpreter.set_tensors 音频输入推理错误
- email - Mailerlite 自动化未在完成条件下发送电子邮件