哈希与校验工具
MD5/SHA哈希、HMAC、IP/TCP/UDP校验和、Fletcher-16、Modbus CRC、LRC/BCC — 数据完整性校验工具箱
输入类型:
算法:
快捷:IP头示例
输入类型:
Fletcher-16 算法:sum1 = (sum1 + byte) mod 255,sum2 = (sum2 + sum1) mod 255,校验和 = (sum2 << 8) | sum1。常用于嵌入式协议和智能卡传输校验。
哈希与校验工具详解
本工具集成了加密哈希函数和通信校验算法两大类功能。加密哈希用于数据完整性和安全验证,通信校验用于传输错误检测。两者虽然都产生固定长度的校验值,但设计目标和应用场景完全不同。
加密哈希
支持 MD5(128 位)、SHA-1(160 位)、SHA-256(256 位)、SHA-512(512 位)和 SM3(256 位)五种算法。这些算法适用于数据完整性验证、文件指纹、密码存储和数字签名。MD5 和 SHA-1 已存在碰撞漏洞,不应用于安全关键场景。SHA-256 和 SM3 是当前推荐的算法。
HMAC 消息认证码
HMAC(Hash-based Message Authentication Code)是将哈希函数与密钥结合的消息认证方案。HMAC-MD5、HMAC-SHA1、HMAC-SHA256、HMAC-SHA512 分别基于对应的哈希算法。HMAC 在 GlobalPlatform SCP02 中用于命令认证,确保 APDU 命令在传输过程中未被篡改。HMAC 的安全性取决于底层哈希函数和密钥长度。
通信校验算法
- IP/TCP/UDP 校验和:16 位反码求和校验,用于网络层数据完整性检测
- Fletcher-16:16 位校验,比简单校验和更强,用于某些通信协议
- Modbus CRC:CRC-16,用于 Modbus RTU 工业总线通信
- LRC/BCC:纵向冗余校验,用于 ISO 7816-3 T=1 协议的块校验
通信校验算法设计目标是速度和错误检测能力,而非抗篡改——它们可以检测到随机传输错误,但无法抵抗恶意修改。对于安全场景(如防篡改),应使用加密哈希函数。在智能卡通信中,T=1 协议块使用 LRC 或 CRC 校验,APDU 层的完整性由 SCP 安全通道的 MAC 保证。