可以将md5分解为跨多个核心/线程运行吗?

在计算大文件的md5总和时,我看到单个cpu核心跳转到100%,无论多长时间,让所有其他核心空闲。

我对md5的基本理解是整个过程是完全线性的,其中值依赖于所有先前读取的值,并且我们无法做任何事情来使其成为multithreading的。 这是真的?

或者有没有办法将文件分成几个部分,使用多核计算多个部分的 ,然后将这些值组合到最终的md5中?

我们用来计算md5sum的库是http://libmd5-rfc.sourceforge.net/但如果有可能在多个内核中打破md5sum以便更快完成,我会切换到另一个库。

(注意:改为md5以外的东西不是问题,也不能这样做,因为它接口的其他封闭系统。也不是关于使用md5的安全性的问题。)

不,你不能在文件级别拆分它。 MD5在运行数据时保持状态。