linux下文件的校验
当文件要传送到其他位置,接收方通常需要确定传送过来的数据有没有被修改或者坏。
或者在文件备份前产生校验值,恢复的时候再进行校验,以确定文件内容完全相同。
使用sum 进行文件的校验
[oracle@zeng ~]$ sum wtmp
38838 215
上面的输出中checksum 是38838 .文件占的block 数量是215个.
[oracle@zeng ~]$ sum -r wtmp
38838 215
-r 表示使用BSD sum 算法。使用 1k 大小的block。
[oracle@zeng ~]$ sum -s wtmp
28852 429 wtmp
-s 表示使用system V sum 算法。使用512 bytes 大小的block.
发送方应该和接收方使用相同的校验算法。这样才可以确定传送的文件的有效性。
使用md5sum,sha1sum:
对wtmp 进行校验,生成校验和
[oracle@zeng ~]$ md5sum wtmp
687b2419a378ed65623457a0f2dd5918 wtmp
[oracle@zeng ~]$ sha1sum wtmp
65149d316263a7b54a6d18421218b3078778498f wtmp
对wtmp进行修改
[oracle@zeng ~]$ vi wtmp
[oracle@zeng ~]$ md5sum wtmp
d8fddd6a2b3a7921cc60dba130b964e9 wtmp
[oracle@zeng ~]$ sha1sum wtmp
cc31ea81ddf1f398361189a95785526d864152c9 wtmp
可见修改以后生成的校验和已经不同了。可以使用--check选项更直观的显示文件信息的有效性。
[oracle@zeng ~]$ md5sum sum.txt >sum.chk
[oracle@zeng ~]$ vi sum.txt
[oracle@zeng ~]$ md5sum --check sum.chk
sum.txt: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
也许你很想知道sum.chk 的内容。里面保存了sum.txt文件的校验值,以及sum.txt的文件名。
[oracle@zeng ~]$ vi sum.chk
e1f3927b9413e6d38aa31096b6c8076d sum.txt
sha1sum 也可以通过--check 选项来进行文件的有效性校验。
注:
sum:计算校验值与block 数量。
md5sum:产生128-bit的 MD5校验值。
sha1sum:产生160-bit的 SHA1 校验值。
另外还有一个cksum算法:计算校验值与计算文件的bytes。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-717891/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26110315/viewspace-717891/