简单的问题:MD5 和 SHA1 都容易受到碰撞攻击。可以合理地假设我们要切换到的下一个算法 SHA256 也有这样的问题,但由于需要找到这样的冲突,所以它被隐藏了。
问题是,我们为什么不使用多种算法来验证文件完整性呢?比如,对同一个文件使用多种算法计算多个校验和,并且只有在它们都匹配时才声明它可以接受?我的意思是,现在在智能手机上找到 MD5 的冲突是可行的,而 SHAttered 攻击已证明找到 SHA1 的冲突是可行的。但是,如果您必须找到 MD5 和 SHA1 的冲突,那不会也增加所需的时间吗?
澄清:虽然这个特定的建议实际上可能在某些地方使用,但我要说的是:为什么通常不建议将这种技术作为升级到 SHA256 的替代方案?