Skip to content

编码与校验 ​

从 首页 → 工具箱 → 编码与校验 进入。本工具做本地转换和校验,不需要连接终端。

CRC-16/Modbus:计算与字节顺序(教学样片) · 下载视频

本段视频演示 CRC 算法与 HEX 输入选择、执行计算,以及 Modbus RTU 的低字节在前顺序。Base64 转换可按下方图文操作。

先决定转换的对象 ​

任务选择输入
文本转 Base64Base64 / 编码原文文本
Base64 还原文本Base64 / 解码Base64 字符串
字符与 HEX 表示转换HEX 对应方向文本或字节 HEX
URL 转义/还原URL 对应方向文本或转义结果
CRC / XOR对应校验算法明确选择 UTF-8 或 HEX

Base64、Base32 和 HEX/文本的编码/解码以 UTF-8 文本 为对象。它们不是任意二进制文件或无线帧的 Base64↔HEX 转换器:字节不是有效 UTF-8 时,解码可能报错;不要先解码成文本再编码成 HEX 来转换无线帧,应从平台导出原始字节 HEX。

编码不是加密。Base64 文本里仍可包含原始敏感内容,不能因为变成另一串字符就公开分享。

例一:Base64 编码和反向还原 ​

  1. 选择 Base64,方向为编码。
  2. 输入 hello。
  3. 点击 执行,输出应为 aGVsbG8=。 到这里编码已完成,可按需复制结果。反向检查(可选): 点击 交换并反向转换,或选择解码并将结果粘贴到输入,再点击 执行,确认输出还原为 hello。
实际执行的 Base64 示例:hello → aGVsbG8=。此计算不发送设备数据。
实际执行的 Base64 示例:hello → aGVsbG8=。此计算不发送设备数据。 点击放大
实际执行的 Base64 示例:hello → aGVsbG8=。此计算不发送设备数据。
实际执行的 Base64 示例:hello → aGVsbG8=。此计算不发送设备数据。

复制时取结果框内容,避免夹带标签、日志前缀或额外空格。解码失败先核对是否复制完整,是否混入引号和时间戳。

例二:CRC-16/Modbus ​

计算读一个保持寄存器请求的 CRC:

  1. 选择 CRC-16/Modbus。
  2. 输入格式选 HEX。
  3. 输入 01 03 00 00 00 01。
  4. 执行,得到 0x0A84。
  5. Modbus RTU 在线路上按低字节在前附加,因此结尾是 84 0A。
离线工具 CRC 示例:结果为 0x0A84,组帧时还要按协议处理字节顺序。
离线工具 CRC 示例:结果为 0x0A84,组帧时还要按协议处理字节顺序。 点击放大
离线工具 CRC 示例:结果为 0x0A84,组帧时还要按协议处理字节顺序。
离线工具 CRC 示例:结果为 0x0A84,组帧时还要按协议处理字节顺序。

完整示例请求:01 03 00 00 00 01 84 0A。不要把字符 0x0A84 原样作为文本字符发送,也不要重复追加两次 CRC。

HEX 与 UTF-8 为什么结果不同 ​

输入框相同内容 01 03参与计算的内容
HEX两个字节 01、03
UTF-8字符 0、1、空格、0、3

先明确协议要求处理原始字节还是文本。CRC 不一致时,先检查输入格式和字节范围,再检查算法,而非只交换输出字节碰运气。

怎样选择校验算法 ​

工具提供 CRC-8、CRC-16/Modbus、CRC-16/CCITT-FALSE、CRC-32/ISO-HDLC、XOR 等选项。名称相近的 CRC 参数可能不同,必须与协议指定算法一致。

确认参与校验的起止字节:帧头、长度、数据、原有校验是否计入,由目标协议决定。通常重新计算时不要把旧 CRC 一起算入,但最终以协议定义为准。

校验是单向计算,不存在把 CRC “解码回原报文”的操作。需要完整 Modbus 帧时,用Modbus 生成工具更便于核对结构。

常见问题 ​

现象检查
HEX 无法解析字符是否仅含有效 HEX,字节是否完整,是否夹带日志
Base64 解码失败方向是否选对,内容是否完整且未被截断
校验与协议示例不同算法、输入格式、参与范围、输出字节顺序
反向转换不出现校验算法不支持可逆转换;查看当前选择
输出正确但设备不响应生成/计算不证明目标通信正确,继续核对地址和发送格式

设备使用指南