二进制文件比较
拖入
两个文件 ,本页就在浏览器内对它们做
逐字节 比较:每一个差异偏移、带上下文的十六进制 diff、差异密度图,以及能显示
哪些比特位 发生了变化的比特级分析。另有独立的
块对齐模式 ,可检测文件中部的插入与删除 — 这是普通逐字节 diff 无法对齐的情形。结果可导出 TXT 和 CSV。任何东西都不会被上传。若要编辑字节而非比较,见 高级十六进制编辑器;文本比较则用
文本 Diff 工具。
1. 选择两个文件
每个差异周围的十六进制上下文:
0 字节
8 字节
16 字节
32 字节
— 相距不足 16 字节的相邻差异会合并为一个块显示。
🔗 比较文件
清空
2. 结论
差异密度(红色:不同的字节;橙色:仅其中一个文件拥有的字节):
0x0
比特级分析 — 哪些比特位发生了变化(对每个不同的字节取 A XOR B):
3. 差异 — 十六进制视图
« 上一个差异
下一个差异 »
| 红 = 文件 A,绿 = 文件 B,相同的行只打印一次
Loading…
差异块
逐字节差异表
4. 块对齐视图(检测插入与删除)
逐字节 diff 把偏移 N 对到偏移 N。如果某个文件的中部被插入或删除 了字节,其后所有内容都会移位,普通 diff 会把整个尾部都报告为不同。本模式对 1 KB 的块做哈希,在两个文件之间匹配这些块,并以复制 / 插入 / 删除 操作的形式报告结果 — 与 xdelta 这类 delta 工具看待变化的方式一致。两个文件都不超过 64 MB 时可用。
运行块对齐比较
5. 导出
📄 下载报告 (TXT)
📊 下载差异 (CSV)
复制偏移列表
隐私: 两个文件都由浏览器自己的 FileReader 读取并在这个标签页内比较 — 没有服务器、没有上传、没有存储。大文件按 1 MB 分片比较,即使 200 MB 的输入也不会一次性整体驻留内存(除非运行块对齐视图,它工作时会把两个文件都载入)。
什么是二进制文件比较?
二进制比较 把两个文件从字节 0 对齐后向前走,报告每一个字节不同的偏移 — 相当于浏览器版的经典 cmp -l 命令。文本 diff 工具做不到这一点:它们要么被不可打印字节卡住,要么用某种字符编码悄悄重新解释文件。二进制比较把两个文件当作它们本来的样子 — 字节数组 — 这正是固件镜像、磁盘转储、数据库文件、加密数据块或任何未知格式文件所需要的。
三个问题在三种深度上得到回答。「它们相同吗?」 是校验和问题 — 哈希工具回答得最快,但只有是/否。「它们在哪里不同?」 是本页的逐字节 diff:偏移、取值、翻转了哪些比特。「这是哪类变化?」 是块对齐视图补充的 — 差异是原位编辑、插入的数据块还是删除的数据块。
逐字节 diff 与块对齐 — 为什么要两种视图?
情形 逐字节 diff 的说法 块对齐视图的说法
某字段被原位覆盖(文件大小不变) 零散的几个差异偏移 相同,外加「其余全部复制」
文件 B 的偏移 2000 处插入了 1 KB 从 2000 起「全部不同」 复制 0–2000,插入 1 KB,复制其余
文件 B 中部删除了一个块 从那一点起「全部不同」 复制到缺口处,删除 N 字节,复制其余
文件 B 是文件 A 前面加了不同的头部 整个文件「不同」 删除头部,然后一整段复制 — 即恒定偏移
逐字节 diff 永远是正确 的 — 这些字节确实在这些偏移上不同。变化的只是解读 :一旦有字节被插入或删除,解读就会移位,就像在文本文件开头加一行会让后面所有行号都变了一样。
如何解读比特级分析
对每个不同的字节,本页计算 A XOR B 并统计哪些比特位被置位。这个直方图出人意料地有表现力:差异集中在比特 0 (每个字节的最低有效位)是 LSB 隐写 的指纹 — 隐藏消息靠微调像素或音频采样的最低位藏身。差异均匀分布在全部八个位上,说明整个值被重写了。只动高位的差异,通常意味着某个字段被换成了数量级差别很大的值。汉明距离 (翻转比特的总数)用一个数字量化同一件事。
一个诚实的提醒:随机数据在任何给定字节上都有 1/256 的概率巧合相同,所以两个毫无关系的同大小文件仍会在约 0.4% 的字节上一致。99.98% 的相似度加少数几个短差异块是补丁级变化;0.4% 的相似度则说明两个文件干脆无关。
常见错误
「第一个差异之后整个文件都红了。」 — 这就是上面说的移位效应,不是真的损坏。运行块对齐视图:如果它报告一次插入加两段长复制,那两个文件就恰好只差那一块。「校验和匹配但这里显示不同。」 — 如果 SHA-256 摘要一致,文件就不可能不同;请检查两个工具里打开的是否是同一批文件。而 CRC-32 匹配在面对蓄意碰撞时什么也证明不了。「相似度 0.4%,可我只改了一处。」 — 如果你的修改在压缩或加密容器内(ZIP、PNG zTXt、加密卷),一处逻辑变化会重写整段压缩流。
常见问题
大小限制是多少? — 逐字节 diff 每个文件最大 200 MB,按 1 MB 分片比较。块对齐视图要载入两个文件,所以每侧限 64 MB。
能检测被移动的块吗? — 对齐器按顺序匹配块;移到别处的块会显示为一次删除加一次相同内容的插入 — 这是个正确但略显生硬的描述。
能生成补丁文件吗? — 不能,它是分析工具;CSV 和 TXT 报告用于记录与审阅,不能用来套用更改。
我的文件会怎样? — 什么都不发生:没有服务器、没有存储、没有分析;关掉标签页,输入的每个字节都消失了。
自测
运行自测