linux下檔案的校驗

pingley發表於2012-03-06
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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章