文件哈希算法的性能

0 perl benchmarking md5 sha filecompare

在我的Perl应用程序中,我需要比较文件的两个版本并检测它们是否已更改.

我正在尝试在MD5或SHA之间进行选择.这与安全无关.这是比较文件的最快方法.我倾向于MD5.

但是,当我运行基准测试时,它表示不然.

有什么建议?

这是我在应用程序中使用最大文件运行的基准测试.

Benchmark: timing 10000000 iterations of MD5, SHA...
   MD5: -0.199009 wallclock secs ( 0.07 usr +  0.01 sys =  0.08 CPU) @ 125000000.00/s (n=10000000)
        (warning: too few iterations for a reliable count)
   SHA: 0.494412 wallclock secs ( 0.06 usr +  0.00 sys =  0.06 CPU) @ 166666666.67/s (n=10000000)
        (warning: too few iterations for a reliable count)
       Rate  MD5  SHA
MD5 125000000/s   -- -25%
SHA 166666667/s  33%   --
Run Code Online (Sandbox Code Playgroud)

Jon*_*oni 6

MD5的计算速度可能比SHA1快,因为它的结构更简单.然后,从磁盘获取数据将比保持MD5或SHA1校验和更新更慢,因此在实践中并不重要.