Hash 使用Skein进行文件完整性检查

Hash 使用Skein进行文件完整性检查,hash,performance,benchmarking,sha-3,skein,Hash,Performance,Benchmarking,Sha 3,Skein,我想知道是否可以使用MD5或SHA1代替MD5进行文件完整性检查 这真的比SHA1和MD5好还是快 更新: 关于你的回答。实际上,我想使用一种更快的主机ID算法,如OSSEC(可能每10分钟执行一次文件完整性检查),以降低主机的负载并占用更少的资源 所以我有两个选择: 新算法 改进SHA1或MD5 你能解释一下哪种方式是可行的和更好的吗?回答你的最后一个问题:作为SHA-3竞赛的参赛者,它应该比SHA-2好得多,更不用说SHA-1了 (甚至不提MD5:它已经坏了,您不应该在任何新代码中使用它。)

我想知道是否可以使用MD5或SHA1代替MD5进行文件完整性检查

这真的比SHA1和MD5好还是快

更新:

关于你的回答。实际上,我想使用一种更快的主机ID算法,如OSSEC(可能每10分钟执行一次文件完整性检查),以降低主机的负载并占用更少的资源

所以我有两个选择:

  • 新算法
  • 改进SHA1或MD5
    你能解释一下哪种方式是可行的和更好的吗?

    回答你的最后一个问题:作为SHA-3竞赛的参赛者,它应该比SHA-2好得多,更不用说SHA-1了


    (甚至不提MD5:它已经坏了,您不应该在任何新代码中使用它。)

    Skein的提交者声称,假设采用64位汇编实现并使用Skein-512,每个处理字节的最大性能为6.1个时钟周期。在2.4GHz的内核上,这有点低于400MB/s,这是非常好的。然而,我自己的MD5 C代码在同一台机器上实现的速度略高于400MB/s:Skein的速度并不比MD5快。但也不慢

    然而,Skein的速度足够快:虽然更快的代码可能会释放一些CPU供其他线程运行(但是,同样,2.4ghz的PC通常有多个内核),但实际上并不需要哈希函数比硬盘快很多


    就我个人而言,我建议使用一个既定的标准(SHA-256或SHA-512,如果你想保守一点的话——但对于某些任务,MD5甚至MD4已经足够好了,而且MD4非常快,其紧凑的代码使用很少的一级缓存)。当正式选择“the”SHA-3时,将是使用它并在生产中部署它的时候了。

    注意,如果OP只是想保护文件完整性不受随机错误的影响(并且与恶意用户无关),MD5将正常工作,任何校验和(如CRC-32,比任何校验和都快得多)@BlueRaja:对,你必须使用正确的工具来完成这项工作:或者你想要防篡改(然后使用SHA-2或更好),或者腐败检测(在这种情况下CRC-32已经足够好了)。在这两种情况下,MD5都不是特别有用的:-实际上,CRC-32对于大文件有很多冲突。从这个角度来看,MD5可能是一个很好的方法,可以让你的头一直卡在沙子里,以避免随机碰撞。(不仅仅是随机错误。)谢谢您的回复。实际上,我想对主机ID使用一种更快的算法,如OSSEC(可能每10分钟执行一次文件完整性检查),以降低主机的负载并占用更少的资源。因此我有两个选择:1)新算法2)改进SHA1或MD5。请你解释一下哪种方法是可以实现的和更好的?永远不要考虑改变散列算法的内容。这将彻底破坏安全。关于优化实现,已经有好的(和免费的)实现,而且很难做得更好。在纯性能方面,您将很难获得比MD5更好的性能,MD5在RAM中非常快速和紧凑;MD4更快、更紧凑,但在涉及大量磁盘访问的环境中,我有点怀疑它是否会产生任何可测量的差异。如果奥赛克推荐MD5,则使用它。