1. 程式人生 > >在Linux系統中使用md5sum校驗資料一致性的耗時驗證與分析

在Linux系統中使用md5sum校驗資料一致性的耗時驗證與分析

我們在Linux系統中校驗檔案一致性時,通常使用md5sum命令來生成檔案的MD5碼,下面先介紹下MD5:

MD5演算法常常被用來驗證網路檔案傳輸的完整性,防止檔案被人篡改。MD5 全稱是報文摘要演算法(Message-Digest Algorithm 5),此演算法對任意長度的資訊逐位進行計算,產生一個二進位制長度為128位(十六進位制長度就是32位)的“指紋”(或稱“報文摘要”),不同的檔案產生相同的報文摘要的可能性是非常非常之小的。

因此可以通過md5sum來完成檔案一致性的檢查。

最近在一臺8核CPU,24GB記憶體的SUSE LINUX伺服器上為了校驗一批壓縮包檔案的一致性,總結了一些經驗跟大家分享:

1、通過多次校驗不同大小的檔案,發現md5sum生成校驗碼的時間是隨檔案增大而時間也隨之增大的,平均值是每1GB耗時4~6秒;

2、當同時校驗多個檔案時,即使使用類似md5sum filename > filename.md5 &這樣的命令,將其丟到系統後臺執行,你會發現完成這批檔案的md5sum校驗的總時間=依次校驗各個檔案的md5sum耗時,其原因是:md5sum校驗檔案時,首先會完成的讀取一遍檔案,但系統硬體的IO能力是固定的,所以即使md5sum是併發,其總耗時也是不變的。