0x1 奇怪的问题
一般我们经常使用md5来校验文件一致性,大多数时候都没有问题。但是最近在做压缩测试,想确认文件有无问题,先cp -a复制了一份目录为备份文件,再把两个目录使用相同命令压缩,校验md5却发现值不同
[root@localhost 123]# du -sb *
117569124 mat
75331667 mat.tar.gz
117569124 mmm
75333283 mmm.tar.gz
[root@localhost 123]# ls -l
total 147152
drwxrwxr-x 7 root root 4096 Jul 16 2021 mat
-rw-r--r-- 1 root root 75331667 Jun 13 17:02 mat.tar.gz
drwxrwxr-x 7 root root 4096 Jul 16 2021 mmm
-rw-r--r-- 1 root root 75333283 Jun 13 17:03 mmm.tar.gz
[root@localhost 123]# stat *gz
File: ‘mat.tar.gz’
Size: 75331667 Blocks: 147144 IO Block: 4096 regular file
Device: 803h/2051d Inode: 1853497 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-06-13 17:03:11.688382823 +0800
Modify: 2022-06-13 17:02:56.342809111 +0800
Change: 2022-06-13 17:02:56.342809111 +0800
Birth: -
File: ‘mmm.tar.gz’
Size: 75333283 Blocks: 147144 IO Block: 4096 regular file
Device: 803h/2051d Inode: 1853498 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-06-13 17:03:11.878389933 +0800
Modify: 2022-06-13 17:03:07.281218061 +0800
Change: 2022-06-13 17:03:07.281218061 +0800
Birth: -
[root@localhost 123]# md5sum *gz
e50a6873bbda5495395ca2bb810a01dc mat.tar.gz
f087a1e58d12e2df5794126259b43ad5 mmm.tar.gz
可以看到复制目录和原目录本来大小是一致的,但压缩后大小不一样了,md5值变了
0x2 进一步测试
根据上面的问题,我们先后压缩同一份目录发现也可以复现,经过网上搜索后发现是跟时间有关系,目录access时间不同导致最后压缩后文件md5不一致,但是更有趣的是压缩过程会修改access的时间,导致每次打包后md5值都不一样