要知道一个文件是否被修改,可靠方法是校验文件Hash值。它由不同算法创建得出,以一串数字字母组成。相当于文件的电子指纹,一旦修改数值也随之变更。现在常用的算法有SHA1/SHA256/MD5,在Linux系统下有相应工具可以计算,无需另外安装就能使用,它们被默认包含在大多Linux系统内。
Linux计算文件Hash值
下面以计算文件SHA1演示,其它算法也是一样用法,只是命令名称有所区别。
示例1:计算一个文件的SHA1值。
[root@testhost ~]# sha1sum test.txt
d0b0d61ce9b03d9e07e511ca53b19a4dfde4dc73 test.txt
示例2:计算多个文件SHA1(可以用*通配符批量选择),并将结果写入指定文件。
[root@testhost ~]# sha1sum test.txt test2.txt test3.txt > hash.sha1
[root@testhost ~]# cat hash.sha1
d0b0d61ce9b03d9e07e511ca53b19a4dfde4dc73 test.txt
9b256eb031ec0551a19c0cf62ab6c05a78e118b1 test2.txt
9c4e85371847c38f326c6480cee470283cef62af test3.txt
示例3:输入指定SHA1值校验与文件是否匹配。
[root@testhost ~]# echo "d7a7aa567c53f617d2d54ea81d14db2d171b7994 test4.txt" | sha1sum -c
test4.txt: OK
示例4:以SHA1结果文件批量校验所记载的文件。
[root@testhost ~]# sha1sum -c hash.sha1
test.txt: OK
test2.txt: OK
test3.txt: OK
补充
其它常用散列算法还有SHA224/SHA256/SHA512/MD5,Linux下使用只需在名称后加上sum就可。
[root@testhost ~]# sha224sum test.txt
[root@testhost ~]# sha256sum test.txt
[root@testhost ~]# sha512sum test.txt
[root@testhost ~]# md5sum test.txt