【问题标题】:Calculate an MD5 checksum for a file in C without opening the file? [duplicate]在不打开文件的情况下计算 C 中文件的 MD5 校验和? [复制]
【发布时间】:2016-05-20 01:00:16
【问题描述】:

我有一个目录中的文件列表,我想计算每个文件的 MD5 校验和。有没有办法在不打开文件的情况下做到这一点?如果没有,我使用什么库?是 md5 库吗?

谢谢

【问题讨论】:

  • 检查 openssl 库
  • 我想在我的代码中使用它,而不是在命令行中。不确定这是否有意义或我如何修改我的问题以使其清楚
  • 即使您使用第三方库(即使操作系统会为此提供 API),要生成 MD5 哈希,也必须打开文件以供读取。如果无法做到这一点,或者您需要加快速度,请考虑预先计算 MD5 哈希(如果发生更改,这将很有趣)。
  • 所以你想计算一个依赖于文件内容的值而不查看文件的内容?生成一个随机数最终可能会产生正确的值。

标签: c linux md5


【解决方案1】:

你可以使用 openssl 库/加密

#include <openssl/md5.h>

...
MD5(a, b, c, d);

-lcryto编译

gcc code.c -o myexec -lcrypto

OpenSSL Reference

【讨论】:

  • 正确。虽然还有很多其他的加密库,但是 openssl 是使用最广泛的。
  • 有没有办法做到这一点而不需要使用-lcrypto?
  • 你可以编写自己的 md5 库,但不确定它会很快;)
  • @AndieM 写md5库不容易。但根据您要使用它的位置和原因,还有其他选择。
  • 答案确实打开并读取文件以计算哈希。
猜你喜欢
  • 2012-05-18
  • 2013-05-28
  • 1970-01-01
  • 2017-08-13
  • 1970-01-01
  • 2011-03-25
  • 1970-01-01
相关资源
最近更新 更多