【问题标题】:Compute the MD5 checksum for a file while writing the file, in C用 C 语言在写入文件时计算文件的 MD5 校验和
【发布时间】:2012-03-16 02:12:48
【问题描述】:

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

当文件被写入磁盘时,我将如何计算文件的 MD5 校验和?我认为这样做至少可以节省重新读取文件以计算校验和的额外开销。

我使用C标准库做所有文件IO,操作系统是Linux。

这可以吗?谢谢!

【问题讨论】:

  • 一百万个 MD5 实现有一个更新方法,谷歌会找到你。 RFC 中甚至还有一个完全可行的权利。

标签: c md5


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-05-18
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多