在C中写入文件时计算文件的MD5校验和

Tom*_*Tom 4 c md5

我有一个C应用程序,生成非常大的二进制文件,每个大约30GB.在编写每个文件之后,计算它的MD5校验和需要一段时间,(每个文件大约几分钟).

在将文件写入磁盘时,我将如何计算文件的MD5校验和?我想通过这样做,我至少可以节省重新读取文件的额外开销,以便随后计算校验和.

我正在使用C标准库来执行所有文件IO,而操作系统是Linux.

可以这样做吗?谢谢!

Gre*_*ill 5

这当然是可行的.基本上,您在开始编写之前初始化MD5计算.然后,每当您将一些数据写入磁盘时,也将其传递给MD5更新功能.写完所有数据后,调用最终的MD5函数来计算最终的摘要.

如果您没有任何方便的MD5代码,RFC 1321包含一个MD5参考实现,提供上述操作.