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

时间:2012-03-16 02:12:49

标签: c md5

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

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

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

可以这样做吗?谢谢!

1 个答案:

答案 0 :(得分:5)

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

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