GoodSync 中文文档 下载 App

MD5 内容校验与复制完整性验证

为什么需要 MD5 校验

文件同步的本质是在两端之间复制文件。如何确认复制过来的文件和源文件完全一致?

最直觉的方法是看文件大小和修改时间——如果两个文件大小一样、修改时间一样,大概率内容相同。但这只是大概率,不绝对:

GoodSync 提供了MD5 全量校验机制,用内容哈希来确认复制的正确性。

GoodSync 中的校验级别

GoodSync 对文件一致性的判断有三个层级,在作业 Options → Advanced 中选择:

级别判断方式速度准确性推荐场景
Quick时间戳 + 文件大小最快中等(可能漏检)定期全量同步时
MD5内容哈希全量对比较慢最准首次同步、重要数据同步
MD5 + Quick 混合先用时间戳/大小筛选,差异文件再算 MD5折中高日常常规使用(推荐)

MD5 校验的执行时机

MD5 校验在两个关键环节被使用:

环节一:分析(Analyze)阶段

GoodSync 分析两端文件是否一致时,如果选择了 MD5 校验:

  1. 对左侧每个文件计算 MD5 哈希
  2. 对右侧每个文件计算 MD5 哈希
  3. 对比两端哈希列表,判断哪些文件需要同步

这个过程在大型目录上会消耗较多 CPU 和时间——GoodSync 会在界面上显示进度。

环节二:复制后验证(推荐开启)

在同步执行完成后,GoodSync 可以对目标端的新文件再次计算 MD5,与源文件的哈希对比,确认复制完全正确:

这个环节是可选但推荐开启的,特别是在以下场景:

MD5 的性能影响

MD5 算法本身是 CPU 密集型操作。GoodSync 的策略是:

在实际使用中,对于几十 GB 的文件量,MD5 校验通常在几十秒到几分钟内完成(取决于磁盘读取速度和 CPU 性能)。如果同步量非常大(数百 GB),可以在日常同步时用 Quick 模式,定期做一次 MD5 全量校验来兜底。

其他校验选项

除了 MD5,GoodSync 还支持:

完整文件体对比(Full Body Compare)

除哈希计算外,还可以做逐字节的完整对比。这个选项比 MD5 更慢(需要完整读取两次文件),通常只在极端调试场景下使用。

Quick 模式下的时间戳可信度

Quick 模式依赖文件的修改时间判断一致性。但某些场景下时间戳不可靠:

在这些场景下,建议至少定期做一次 MD5 全量校验。

安全提示

MD5 虽然足以验证文件复制的正确性,但它不是加密安全的哈希算法(已被证明可碰撞)。不过对于「验证两个文件内容是否相同」这个用途来说,MD5 的碰撞概率可以忽略不计——毕竟这里验证的是 GoodSync 自己刚才复制过来的文件,不是抵御恶意伪造。

GoodSync 的端到端加密用的是 SHA-256 + AES-256,与 MD5 校验是两个独立的安全层。