首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相同文件内容的不同md5sum?

相同文件内容的不同md5sum?
EN

Stack Overflow用户
提问于 2011-11-11 16:59:48
回答 1查看 2.7K关注 0票数 2

我有一个关于计算md5sum的问题。我有一个恢复工具-which归档文件的元数据(inode),还计算它们的文件(S)的md5sum,并在安装期间将它们存储在sqlite db中。当文件被移除/删除时。该工具使用sqlite- is中的元数据恢复删除的文件。恢复file.Now,我想确保恢复的文件与原始文件完全相同,并重新计算恢复的文件md5sum,如下所示。问题是,奇怪的是,对于几个文件,我可以看到(使用cat)文件内容完全相同(与删除之前一样)& md5sum命令显示相同的输出(除了不同的inode编号),但stat不同。

下面的两个文件具有相同的内容-因此具有不同的inode编号不会影响md5sum。

代码语言:javascript
复制
764efa883dda1e11db47671c4a3bbd9e  /test/hi1.txt
764efa883dda1e11db47671c4a3bbd9e  /test/hi.txt

有什么想法,我该怎么做呢?

代码语言:javascript
复制
char file_location[512] = {0};

char md5_cmd[512], md5sum[34];
FILE *pf;
//some recovery stuff goes here...

//Recompute md5  of recovered file
memset(md5_cmd, '\0', 512);
sprintf(md5_cmd, "md5sum %s", file_location);

pf = popen(md5_cmd, "r");
if (!pf) {
    fprintf(stderr,"Could not open pipe");
    return;
}

// get data
fgets(md5sum, 34, pf);

if (pclose(pf) != 0)
fprintf(stderr, "Error: close Failed.");

fprintf(stdout, "Md5sum is %s", md5sum);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-11 17:06:55

您不能可靠地将文件内容与cat进行比较。通过这种方式(除非使用cat -A或类似的语言),可能会有许多不被注意的差异:空格与制表符、行尾的空格等。

您应该将文件与

代码语言:javascript
复制
diff -u fileA fileB

代码语言:javascript
复制
cmp fileA fileB

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8091658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档