Hash 相同的内容文件,MD5值不同

Hash 相同的内容文件,MD5值不同,hash,cryptography,md5,md5sum,Hash,Cryptography,Md5,Md5sum,正如我们所知,两个不同文件(即使其内容相同)的md5是不同的,如下所示: [langshiquan@cp01-rdqa-dev002.cp01.baidu.com md5test]$ ll total 16 drwxrwxr-x 7 langshiquan langshiquan 4096 Mar 28 19:41 output drwxrwxr-x 3 langshiquan langshiquan 4096 Mar 28 19:44 test -rw-rw-r-- 1 langshiq

正如我们所知,两个不同文件(即使其内容相同)的md5是不同的,如下所示:

[langshiquan@cp01-rdqa-dev002.cp01.baidu.com md5test]$ ll
total 16
drwxrwxr-x  7 langshiquan langshiquan 4096 Mar 28 19:41 output
drwxrwxr-x  3 langshiquan langshiquan 4096 Mar 28 19:44 test
-rw-rw-r--  1 langshiquan langshiquan  100 Mar 28 19:54 test.sh
-rw-rw-r--  1 langshiquan langshiquan   69 Mar 28 19:48 test.sh~
[langshiquan@cp01-rdqa-dev002.cp01.baidu.com md5test]$ sh test.sh
[langshiquan@cp01-rdqa-dev002.cp01.baidu.com md5test]$ md5sum output.tar
2b7f05590cd4c8665dd61bbf745bbeee  output.tar
[langshiquan@cp01-rdqa-dev002.cp01.baidu.com md5test]$ sh test.sh
[langshiquan@cp01-rdqa-dev002.cp01.baidu.com md5test]$ ll
total 18212
drwxrwxr-x  7 langshiquan langshiquan     4096 Mar 28 19:41 output
-rw-rw-r--  1 langshiquan langshiquan 18606080 Mar 28 19:54 output.tar
drwxrwxr-x  3 langshiquan langshiquan     4096 Mar 28 19:44 test
-rw-rw-r--  1 langshiquan langshiquan      100 Mar 28 19:54 test.sh
-rw-rw-r--  1 langshiquan langshiquan       69 Mar 28 19:48 test.sh~
[langshiquan@cp01-rdqa-dev002.cp01.baidu.com md5test]$ md5sum output.tar
3601eff99bc78198b152b04ca94c53d0  output.tar
test.sh脚本shell:

#! bin/bash
cp -rp output ./test/
echo "1" > ./test/output/a.txt
tar -cf output.tar ./test/* -C ./
我在网上搜索了很长时间。但是没有用。请帮助或尝试给出一些实现此目标的方法。
Q1.所以我认为是否有一个类似于MD5的散列函数(例如,我称之为“HashStr”),它对具有相同内容但不同属性的文件使用相同的“HashStr”。
或者当我们可以制作TAR时,我们如何排除文件的属性来制作相同的MD5


提前感谢。

如果文件相同,则哈希值将相同。如果属性(而不是文件内容)不同,则需要在散列之前将属性添加到文件中。将要包含的属性放入一段文本,并将其添加到文件中。然后将属性+文件作为单个数据段进行散列。

如果文件相同,则散列值将相同。如果属性(而不是文件内容)不同,则需要在散列之前将属性添加到文件中。将要包含的属性放入一段文本,并将其添加到文件中。然后将属性+文件作为单个数据进行散列。

不清楚您在问什么,md5sum不关心文件的名称,具有相同内容的不同名称的文件返回相同的md5-如果您观察到您正在比较的文件的行为不同。我知道您在说什么,我只需要一个散列,这可以使相同的内容文件具有相同的哈希值。md5sum可以做到这一点,如果内容相同,则哈希值相同?哦,md5sum不能做到。不清楚你在问什么,md5sum不关心文件的名称,具有相同内容的不同名称的文件返回相同的md5-如果您观察到正在比较的文件的行为不同。我知道您的意思,我只需要一个散列,它可以使相同内容的文件具有相同的散列。md5sum会这样做,如果内容相同,则散列相同?哦,md5sum做不到。此外,请注意,
tar
是不确定的,因为至少一些版本的
tar
将在存档中包含PID。因此,重复运行tar实际上会生成不同的文件。谢谢,因为“将要包含的属性放入一段文本并将其添加到文件中”,我不能排除文件的属性。对吗?此外,请注意,
tar
不是确定性的,因为至少一些版本的
tar
将在存档中包含PID。因此,重复运行tar实际上会生成不同的文件。谢谢,因为“将要包含的属性放入一段文本并将其添加到文件中”,我不能排除文件的属性。正确的?