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

时间:2017-03-28 12:43:26

标签: 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 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 ./

我在网上搜索了很长时间。但没用。请帮助或尝试提出一些如何实现这一目标的想法 那么我认为是否存在类似于MD5的哈希函数(例如,我称之为" HashStr"),这使得相同的" HashStr"对于具有相同内容但属性不同的文件 问2.当我们可以制作TAR时,我们如何排除文件的属性以制作相同的MD5?

提前致谢。

1 个答案:

答案 0 :(得分:2)

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