校验和(checksum)程序用来从文件中生成检验和秘钥,然后利用这个校验和秘钥核实文件的完整性。
用于文件完整性测试的特定秘钥就称为校验和。
校验和对于编写备份脚本或系统维护脚本来说非常重要。
1、最知名且使用最为广泛的校验和技术是md5sum和SHA-1。他们对文件内容使用相应的算法来生成校验和。
2、为了计算md5sum,使用下面命令:
$md5sum filename
68b329da9893e34099c7d8ad5cb9c940 filename
如上所示,md5sum是一个32个字符的十六进制。
将输出的校验和重定向到一个文件,然后用这个MD5文件核实数据的完整性。
$md5sum filename >file_sum.md5
3、工作原理
md5sum校验和计算的方法如下:
$md5sum file1 file2 file3 ..
当使用多个文件时,输出中会在每行中包含单个文件的校验和:
[checknum1] file1
[checknum1] file2
[checknum1] file3
用下面的方法用生成的文件核实数据完整性:
$md5sum -c file_sum.md5
#这个命令会输入校验和是否匹配的消息
如果需要用所有的.md5信息来检查所有的文件,可以使用
$md5sum -c *.md5
与md5sum类似,SHA-1是另一种常用的校验和算法,它对应的命令和文件是sha1sum和file_sum.sha1
4、补充内容
核实多个文件
对目录进行校验
校验和是从文件中计算得来的,对目录计算校验和意味着我们需要对目录中的所有文件进行递归的方式进行计算。
可以用命令md5deep或sha1deep来实现。首先需要安装md5deep软件包以确保能找到这些命令。如下
$md5deep -r1 directory_path > directory.md5
#-r使用递归的方式
#-1使用相对路径。默认情况下,md5deep会输出文件的绝对路径.
也可以结合find来递归计算校验和
$find directory_path -type f -print0 |xargs -0 md5sum >>directory.md5
用下面的命令进行核实
$md5sum -c directory.md5