解压后检查文件的MD5是否有任何价值?

目前我正在处理的一个项目要求用户在解压在整个项目上运行一个MD5散列检查工具。 他们目前没有要求检查ZIP本身。

如果他们要切换到检查zip的MD5,是否有任何价值来validation与MD5的解压缩文件的完整性 – 或者这是由CRC检查时解压缩?

你的解压缩软件有可能做一些奇怪的事情,或者数据在存储步骤中被破坏。 对于高度关键的数据,您应该在将其存储到磁盘后进行validation。

在实践中,zip / unzip是旧的程序,在您的Linux发行的Zip程序中的bug的风险是相当低的。 这主要是在不稳定的平台上或存储有问题时所关心的问题。 我已经看到路由器解压缩时损坏的图像,并通过NFS失败写入可能会导致有趣的文件损坏。

如果你认为有人可能制作一个“邪恶的”压缩档案来绕过你的支票,情况有点不同。 请注意,zip中的CRC没有提供针对攻击者的保护,而且MD5是一个相当古老而薄弱的algorithm。 大多数系统正在转向SHAalgorithm来validation文件完整性(SHA256是我认为最stream行的)。 对存档和扩展文件进行哈希处理使得对MD5的攻击困难得多。

技术上是的,实际上可能不是。

应该检查个人文件校验和以防止生日攻击冲突…如果你有理由担心这样的事情。

因为我知道zip归档文件中的每个文件都有自己的校验和,所以当您从归档文件中提取文件时,zip会计算提取文件的校验和,并将其与归档文件中的校验和进行比较。 如果校验和不同,则认为zip压缩文件已损坏。 校验和也不是MD5校验和,我认为它的CRC校验也我不确定我认为它是可靠的,但是如果你想100%确定你有的文件是文件提供程序分发的文件相同CentOS的iso。 并且不会被第三方修改,您可能需要检查md5总和

唯一的办法,我看到这是有效的双重检查的安全性,并保证该文件写入到磁盘没有损坏(这将是非常厄运或坏的磁盘!)。